0

我需要那个,我点击哪个项目,把它Id付诸GetProduct()行动。我使用hidden了元素,但它不起作用:

@using (Ajax.BeginForm("GetProduct", "Product", new AjaxOptions { UpdateTargetId = "getProductResult" }, new { id = "productForm" }))
    {
      foreach (var item in list)
      {
         <a href="#" onclick="$('#productForm').trigger('submit');">@item.Name</a>

        //this hidden always send '1', but I want to send item's Id
        <input type="hidden" id='product_@(item.Id)' name ="id" value="@item.Id"  />
      }

     <noscript>
        <input type="submit" id="sendButton" />
     </noscript>
    }

我哪里错了?我该如何发送Id

4

2 回答 2

1

隐藏输入的名称为“id”,并且在 for 循环中增加了时间。因此它不会工作..

不要在单击按钮时直接提交表单。将 ID 存储在按钮的 rel 属性中。并在单击时将其值分配给隐藏变量,然后提交表单..

<a href="#"
   rel="@(item.id)"
   onclick="$('#id').val($(this).attr('rel')); ('#productForm').trigger('submit');">
@item.Name
</a>

将 onClick 代码放在单独的函数中将是首选的:)

检查这个提琴手

于 2013-02-26T10:39:56.650 回答
1

试试这个 。

  foreach (var item in list)
  {
    @using (Ajax.BeginForm("GetProduct", "Product", new AjaxOptions { UpdateTargetId = "getProductResult" }, new {  }))
      {
     <a href="#" class="anchor" >@item.Name</a>

    //this hidden always send '1'.
    <input type="hidden" id='product_@(item.Id)' name ="id" value="@item.Id"  />


      <noscript>
       <input type="submit" id="sendButton" />
     </noscript>
     }
  }



<script>
$(function(e){
 $('.anchor').click(function(e){
   //get the parent form.
   var parentform= $(this).parents('form:first');
   parentform.submit();

  });
});
</script>
于 2013-02-26T10:59:16.797 回答