最近在工作中用到了在ASP.NET MVC中以post方式传递数组参数的情况,记录下来,以供参考。

一、准备参数对象

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

  1. public class UserInfo
  2. {
  3. public int UserId { get; set; }
  4.  
  5. public string UserName { get; set; }
  6. }

二、后台代码

后台Action代码如下:

  1. [HttpPost]
  2. public ActionResult TestPost(List<string> a, UserInfo[] b)
  3. {
  4. var result = new {IsSuccess = true, ErrMsg = "你错了"};
  5. return Json(result, JsonRequestBehavior.AllowGet);
  6. }

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

三、前端代码

前端jquery调用代码如下:

  1. <html>
  2. <head>
  3. <meta name="viewport" content="width=device-width" />
  4. <title>Index</title>
  5. <script src="~/Scripts/jquery-1.8.2.min.js"></script>
  6. <script type="text/javascript">
  7. $(function() {
  8. $('#btnTest').click(function() {
  9. var data = {};
  10. data["a[0]"] = "Test";
  11. data["a[1]"] = "Just";
  12. data["b[0].UserId"] = 1;
  13. data["b[0].UserName"] = "Zhang";
  14. data["b[1].UserName"] = "黄Sir";
  15. $.post('@Url.Action("TestPost")', data, function(res) {
  16. alert('Result: ' + res.IsSuccess + ', Error: ' + res.ErrMsg);
  17. });
  18. });
  19. });
  20. </script>
  21. </head>
  22. <body>
  23. <div>
  24. <input type="button" id="btnTest" value="测试"/>
  25. </div>
  26. </body>
  27. </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; ....

在ASP.NET MVC中以post方式传递数组参数的示例的更多相关文章

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

    最近在工作中用到了在ASP.NET MVC中以post方式传递数组参数的情况,记录下来,以供参考. 一.准备参数对象 在本例中,我会传递两个数组参数:一个字符串数组,一个自定义对象数组.这个自定义对象 ...

  2. URL 通过Get方式传递数组参数

    URL 通过Get方式传递数组参数 方法1: ?id=1&id=2&id=3 后台获取时,只需要reqeust.getParameterValues("id") 获 ...

  3. ASP.NET MVC中默认Model Binder绑定Action参数为List、Dictionary等集合的实例

    在实际的ASP.NET mvc项目开发中,有时会遇到一个参数是一个List.Dictionary等集合类型的情况,默认的情况ASP.NET MVC框架是怎么为我们绑定ASP.NET MVC的Actio ...

  4. [转]Asp.Net MVC使用HtmlHelper渲染,并传递FormCollection参数的陷阱 【转】

    在Asp.Net MVC 1.0编程中,我们经常遇见这样的场景,在新建一个对象时候,通过HtmlHelper的方式在View模型中渲染Html控件,当填写完相关内容后,通过Form把需要新建的内容Po ...

  5. [转]Asp.Net MVC使用HtmlHelper渲染,并传递FormCollection参数的陷阱

    http://www.cnblogs.com/errorif/archive/2012/02/13/2349902.html 在Asp.Net MVC 1.0编程中,我们经常遇见这样的场景,在新建一个 ...

  6. 解决JavaScript中使用$.ajax方式提交数组参数

    一般的,可能有些人在一个参数有多个值的情况下,可能以某个字符分隔的形式传递,比如页面上有多个checkbox: $.ajax{ url:"xxxx", data:{ p: &quo ...

  7. Java SpringMvc+hibernate架构中,调用Oracle中的sp,传递数组参数

    一.问题 我们调用数据,大都是可以直接获取表中的数据,或者用复杂点的sql语句组成的.但是,有时候,当这样达不到我们要的全部数据的时候,这时,我们就用到了存储过程[sp],如果sp需要参数是数组的话, ...

  8. ASP.NET MVC中错误处理方式

    /// <summary> /// 标记了HandleError,并指明错误处理页为AboutError.aspx /// </summary> /// <returns ...

  9. ASP.NET MVC 中@html.ActionLink的几种参数格式

    一 Html.ActionLink("linkText","actionName") 该重载的第一个参数是该链接要显示的文字,第二个参数是对应的控制器的方法, ...

随机推荐

  1. MacPE+WinPE-黑苹果之路

    装黑苹果过程中,安装.备份.恢复都需要启动到MAC,总是从硬盘启动对于硬盘数据风险太大,琢磨着安装个pe用来维护,此外手上的winpe,也想着一并实现,免得搞两个u盘.找了个网页开工,http://b ...

  2. JS入门-慕课网

    javascript是一种弱类型的数据交互语言, ch 1 数据类型 js中有六种数据类型:nunmber.string.boolean.null.undenfined.object原始类型:numb ...

  3. java中高级软件工程师面试总结

    最近去了几家公司面试java中高级工程师,打击挺大的,感觉自己一直以来没有很好的深入学习,对各种知识都是一知半解,但心又太高,想找更高薪的职位,结果面试屡屡碰壁,哎,心情好低落,也是时候静下心来,好好 ...

  4. 利用Oracle VM VirtualBox部署自己的owncloud存储服务器

    最近在弄文档方面的工作,所以想找个能够自动备份且带历史版本的网盘,找了很久没找到,所以决定自己部署一个私人服务器. 找了很久.试了很久终于确定owncloud能够满足自己的要求,而且还是开源免费的. ...

  5. 在shell中通过fifo与服务器交互

    首先,需要说的是:1.在shell中,运行的每一个命令至少启动一个新进程,且:$$:获取当前shell的进程号(PID)$! :执行上一个指令的PID2.重定向与管道有点类似,例子:cmd1 < ...

  6. javascript代码复用(四)-混入、借用方法和绑定

    这篇继续说js的现代复用模式:混入.借用方法和绑定. 混入 可以针对前面提到的通过属性复制实现代码复用的想法进行一个扩展,就是混入(mix-in).混入并不是复制一个完整的对象,而是从多个对象中复制出 ...

  7. mongodb replica set(副本集)设置步骤

    网上已经有一大堆的设置步骤的了,根据我遇到的问题,整理一下,如下: 首先先去下载一个mongodb最新版,目前最新版应该是2.6 cd /usr/local/bin wget http://fastd ...

  8. golang初体验

    使用golang开发已经有一个多月了,除了一开始遇到的各种小白问题,IDE的选择,gopath,goroot的配置...后边还算顺风顺水的.实践体验,golang真的适合快速开发.特别是后台开发,直接 ...

  9. sorcketlog

    正在运行的API有bug,不能var_dump进行调试,因为会影响client的调用. 将日志写到文件,查看也不方便,特别是带调用栈或大数据结构的文件日志,查看日志十分困难. 这时候用SocketLo ...

  10. poj3692_Kindergarten

    这题目大意是:男孩互相认识,女孩互相认识,一部分男女之间认识,老师要选一部分人,要求这部分人必须都相互认识. 这是一个二部图,先求出补图,在补图中G‘左右两点有连线说明在G中两者不认识,反之成立. 所 ...