C# 动态生成jQuery函数MVC4

C# 动态生成jQuery函数MVC4,c#,javascript,jquery,asp.net-mvc-4,razor,C#,Javascript,Jquery,Asp.net Mvc 4,Razor,目前,我正在将对象列表从控制器传递到视图,并根据对象的名称生成标签 我试图做的是生成一个jQuery函数,该函数将在单击后为每个标签动态创建函数(使用相对标签id切换表单) jQuery函数不工作,我无法在网页中输出相应的jQuery函数。。。。。。你能给我一些提示吗 <table> @foreach (var item in Model) { <tr> <td> @Htm

目前,我正在将对象列表从控制器传递到视图,并根据对象的名称生成标签

我试图做的是生成一个jQuery函数,该函数将在单击后为每个标签动态创建函数(使用相对标签id切换表单)

jQuery函数不工作,我无法在网页中输出相应的jQuery函数。。。。。。你能给我一些提示吗

<table>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.Label(item.productName, new { @id = item.productId})
            </td>
        </tr>    
    }
</table>


<script type="text/javascript">
    $(document).ready(function () {
        @foreach (var item in Model)
    {
        $(@item.productId).click)(function({
            //do something
       }));
    }

    });
</script>

@foreach(模型中的var项目)
{
@Html.Label(item.productName,新{@id=item.productId})
}
$(文档).ready(函数(){
@foreach(模型中的var项目)
{
$(@item.productId).单击)(函数({
//做点什么
}));
}
});

非常感谢

首先,您的JS语法是错误的。您要做的是为所有这些标签提供一个类名(例如
product\u lbl
)或一个数据属性(如果您不喜欢语义类名),例如
product lbl
。这样,您就不必进行第二次循环来添加单击事件处理程序。您只需要一个,如下所示:

$('.product_lbl').on(
    'click', 
    function() { /* Do something for whichever label was clicked */ }
);


首先,您的JS语法是错误的<代码>$('@item.productId')。在('click',function(){})上更符合您的需要,但是一种更便宜、更快的方法是为所有标签指定一个类名,并且只有一个单击处理程序;ie
$('.product_lbl')。在('click',function(){/*为单击的标签做点什么*/})
另外,
$('idgoesher')
也会有所帮助。
$('[product-lbl]').on(
    'click', 
    function() { /* Do something for whichever label was clicked */ }
);