如何设置ID并在mvc 4 razor中动态使用它?

Jey*_*mov 9 javascript asp.net-mvc jquery attributes click

我有html元素foreach.我无法手动为这些人声明ID名称.我曾经 id='ProductSelect_@(item.Id)'设置过Id:

  foreach (var item in Model)
   {
     <a href="#" id='ProductSelect_@(item.Id)' class="select-link">Select this</a>
   }
Run Code Online (Sandbox Code Playgroud)

但是,现在我需要.click()函数为eash <a>链接做我的一些操作.如何为动态ID写点击功能?
我检查了这个,但它不起作用:

$("#ProductSelect_@(item.Id)").click(function () {

   //any operation

 });
Run Code Online (Sandbox Code Playgroud)

编辑:

<script>
    $(document).ready(function () {
        $('.select-link').click(function() {
            var id = $(this).attr('data-id');

            url = '@Url.Action("SelectThis", "Product")';
            var data = { id: '@Model.Id' };
            $.post(url, data, function (result) {
                if (result.success) {
                    alert("Thanks");
                }
                else {
                    alert("Problem occured...");
                }
            });

        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

此click()函数将请求发送到控制器迭代计数次数.我的代码有什么问题?

Eli*_*ert 12

我建议使用属性.

 foreach (var item in Model)
   {
     <a href="#" data-id='@item.Id' id='ProductSelect_@(item.Id)' class="select-link">Select this</a>
   }
Run Code Online (Sandbox Code Playgroud)

然后在JS ......

$('.select-link').click(function()
{
 var id = $(this).attr('data-id');
});
Run Code Online (Sandbox Code Playgroud)

这样你就可以连接到所有类似的链接(例如select-list),而不需要为每个#id提供单独的处理函数.