2012-10-09 42 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; 
     } 
相關問題