Asp.net MVC 5 动态创建按钮并调用带有参数的 javascript 函数

Posted

技术标签:

【中文标题】Asp.net MVC 5 动态创建按钮并调用带有参数的 javascript 函数【英文标题】:Asp.net MVC 5 dynamically created button and calls to a javascript function with argument 【发布时间】:2020-05-31 15:15:28 【问题描述】:

从我的剃刀视图来看,我有一个循环用于在表中创建一些数据。

@foreach (var item in Model.ItemModel) 
    <tr>
        <td>
            @html.DisplayFor(modelItem => item.ItemCode)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ItemName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Brand)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.PurchaseQty)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.SalesQty)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Stock)
        </td>
        <td>
            <button onclick="showModal(item.ItemCode);">Show Details/button>
        </td>
    </tr>

我的 javascript 函数是接受一个参数(当按钮单击时)并在模式中打印它。

<script type="text/javascript">
    function showModal(itemCode)
    
        var mod = $('#myModal');
        mod.modal();
        $('#recordId').html(itemCode);
    
</script>

我在运行上面的代码时遇到了异常,当我使用一些手动输入参数(如 123)时它工作正常。

<button onclick="showModal(123);">Show Details/button>

我想通过使用动态参数(来自循环的值)来调用这个方法,这里有什么问题?帮帮我!

【问题讨论】:

检查您呈现的 HTML。您不需要在 item.ItemCode 中添加“@”吗?所以:“showModal(@item.ItemCode);” 没错,我错过了'@' 【参考方案1】:

答案是"showModal(@item.ItemCode);", 我一开始就错过了@。

【讨论】:

以上是关于Asp.net MVC 5 动态创建按钮并调用带有参数的 javascript 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用jQuery unobtrusive和Asp.Net Mvc验证动态生成的单选按钮组?

ASP.NET MVC - 路由 - 带有文件扩展名的操作

ASP.NET MVC5 Bootstrap 3 模态表单未验证客户端并回发到页面

带有 Jquery 模态形式的 asp.net MVC

C# & ASP.NET MVC 5 - 从按钮单击执行存储过程,没有返回值

如何在 ASP.NET Core MVC 中添加分页,在 AJAX 调用中动态创建的表上