在ASP.NET MVC中以post方式传递数组参数的示例

http://www.cnblogs.com/huatao/p/4688147.html

 一、准备参数对象

    在本例中,我会传递两个数组参数:一个字符串数组,一个自定义对象数组。这个自定义对象UserInfo定义如下:

public class StudentInfo
{
  public int ID { get; set; }
  public string Name { get; set; }
}

    二、后台代码

    后台Action代码如下:

[HttpPost]
public ActionResult SumbitData(List<Score> score, List<int> num)
{
   return View();
}

    其中List或数组方式对前端代码写法都一样。   

    三、前端代码

    前端jquery调用代码如下:

复制代码

@{
ViewBag.Title = "View1";
}

<script type="text/javascript">

function sumbmit() {
 var url = "/Home/SumbitData";
 var data = {};
 data["score[0].ID"] = 1;
 data["score[0].Name"] = "wjl1";
 data["score[1].ID"] = 2;
 data["score[1].Name"] = "wjl2";
 data["num[0]"] = 0;
 data["num[1]"] = 1;

 $.post('@Url.Action("SumbitData")', data, function () {

 })
}
</script>
<button onclick="sumbmit()">button</button>

<body>
    <div>
        <input type="button" id="btnTest" value="测试"/>
    </div>
</body>
</html>
复制代码

    四、总结

    在ASP.NET MVC中以post方式传递数组参数的关键在于json对象的写法,这里总结一下:

    先定义空对象:var data = {};

    针对List<string>、List<int>等简单类型,data["a[0]"] = "dd"; data["a[1]"] = "d2"; ....

    针对复杂类型,如List<UserInfo>, UserInfo[],data["b[0].UserId"] = 1; ....

posted @ 2015-08-01 22:41  wjl910  阅读(1004)  评论(0)    收藏  举报