html 在onClick函数中传递c#变量参数

a5g8bdjr  于 2022-12-02  发布在  C#
关注(0)|答案(4)|浏览(389)

我正在使用MVC剃刀,我在视图部分有一个小问题...
为了继续,我有一个包含不同元素的循环,每个元素都有两个按钮,一个是下载,另一个是请求。我的问题是“请求”按钮......我需要当我点击它时,我发布元素的ID......
这是我代码一部分:

enter code here <div class="contentsection" style="border-bottom:1px solid orange;">
<table style="width:100%;">
    <thead>
       ...
       ...
    </thead>
    <tbody>
        @foreach (DownloadItem di in group.Items)
        {
        <tr>
            <td class="bold">@di.DisplayName</td>
            <td>
                @using (Html.BeginForm("Download", "MyController", new { id = di.ID }, FormMethod.Post, new { style = "display:inline;" }))
                {
                    <input type="submit" id="download" value="Download" />
                }
                    <input type="button" id="request" value="Request" onclick="somejavascriptmethod(@(di.ID))" />
                    <span id="requestDate">@(di.requestDate)</span>                    

            </td>
        </tr>
        }
    </tbody>
</table>

我的问题是,当用户点击按钮“请求”,我的函数“somejavascriptmethod(id)”被调用,我需要id作为参数...虽然我得到一个语法错误,我认为它可以工作...但它没有...我没有“张贴”的id,我得到“500内部服务器错误...”
提前感谢您的帮助!

5lwkijsr

5lwkijsr1#

您正在创建具有相同ID(request)的多个输入。HTML ID应该是唯一的。
作为所需的替代方法,可以使用data-attribute

<input type="button" data-id="@(di.ID)" value="Request" />

并使用jQuery来处理您需要的ID:

$("input[type=button]").click(function() {
      var id = $(this).data("id");
      yourJSFunction(id);
   });

http://jsfiddle.net/XAffc/

pbossiut

pbossiut2#

如果你的值不是整数,那么你必须像下面这样使用它

<input type="button" id="request" value="Request" onclick="somejavascriptmethod('@(di.ID)')" />
3htmauhk

3htmauhk3#

试试这个

<input type="button" value="Assign" onclick="myfunction(@di.ID);" />

function myfunction(obj) {

        var id = obj;
        alert(id);//this way you can get your id.
      }
nsc4cvqm

nsc4cvqm4#

试试这个

<input type="button" id="request" value="Request" onclick="somejavascriptmethod('@di.ID')" />

相关问题