2012-10-09 43 views
0

在我的形式,我有相同名称的几个隐藏字段(RemoveId)MVC 3传递多个整数/收集到控制器

<input type="hidden" value="1" name="RemoveId" /> 
<input type="hidden" value="2" name="RemoveId" /> 
<input type="hidden" value="3" name="RemoveId" /> 
<input type="hidden" value="4" name="RemoveId" /> 
<input type="hidden" value="5" name="RemoveId" /> 

我想通过检查的项目(INT(S))到通过ajax/json控制器

我该怎么做? 感谢

+0

,你可以把它作为一个数组,不要你? – FosterZ

回答

2

这里是应该帮助

使用getElementsByName上的名字“RemoveId”会给你一个数组

var list = document.getElementsByName("RemoveId"); 

var arrId = []; 

for (var i = 0; i < list.length; i++) { 
    arrId.push(list[i].value); 
} 

传递ID的准备控制器

$(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "@Url.Action("PostArray")" %>", 
     data: {idArray: arrId}, 
     dataType: "json", 
     success: function(msg){console.log(msg)} 
    }); 
}) 
名单

这里是你的控制器应该如何看起来像

[HttpPost] 
public ActionResult PostArray(int[] idArray) 
{ 
    // do your thing.. 
} 
2

尝试这样做:

<input type="hidden" value="1" name="RemoveId" /> 
<input type="hidden" value="2" name="RemoveId" /> 
<input type="hidden" value="3" name="RemoveId" /> 
<input type="hidden" value="4" name="RemoveId" /> 
<input type="hidden" value="5" name="RemoveId" /> 


<input type="button" value="do" class="send" /> 

<script type="text/javascript" > 
    $(function() { 
     $(".send").click(function() { 
      var myValues = []; 
      $("[name = 'RemoveId']").each(function (index, element) { 
       myValues.push($(element).val()); 

      }); 
      $.ajax({ 
       type: "POST", 
       url: "/Home/Method", 
       data: { myValues: myValues } 
      }); 
     }); 

    }) 
</script> 



     [HttpPost] 
     public ActionResult Method() 
     { 
      var b = Request["myValues[]"].Split(',').ToList(); 
      return null; 
     } 
相关问题