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

一、准备参数对象

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

    public class UserInfo
{
public int UserId { get; set; } public string UserName { get; set; }
}

二、后台代码

后台Action代码如下:

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

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

三、前端代码

前端jquery调用代码如下:

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(function() {
$('#btnTest').click(function() {
var data = {};
data["a[0]"] = "Test";
data["a[1]"] = "Just";
data["b[0].UserId"] = 1;
data["b[0].UserName"] = "Zhang";
data["b[1].UserName"] = "黄Sir";
$.post('@Url.Action("TestPost")', data, function(res) {
alert('Result: ' + res.IsSuccess + ', Error: ' + res.ErrMsg);
});
});
});
</script>
</head>
<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; ....

在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. 服务器IO瓶颈对MySQL性能的影响

    [背景] 之前我们碰到一些MySQL的性能问题,比如服务器日志备份时可能会导致慢查询增多,一句简单的select或insert语句可能执行几秒,IO负载较高的服务器更容易出现并发线程数升高,CPU上升 ...

  2. liunx的命令大全

  3. hdu 3360 最小点覆盖 **

    题意:给你一个图,图中有宝物和保安两种元素.每个宝物需要周围的某些位置同时安放保安(如果那些位置有宝物,可以把宝物替换成保安)问你最少需要再安置多少保安,可以使所有宝物满足要求. 题意有点难懂 链接: ...

  4. 自己封装jquery的一些方法 链式调用模式

    function getIndex(ele){ var parent=ele.parentNode; var brothers=parent.children; for(var i=0,len=bro ...

  5. Failed to connect socket to '/var/run/libvirt/libvirt-sock'的问题解决

    1.增加libvirtd用户组 groupadd libvirtd 2.设置用户到组 sudo usermod -a -G libvirtd $USER 3.设置启动libvirtd服务的用户组 vi ...

  6. .net中实现RSS方法

    引用 如何在.net动态网站中实现RSS呢?主要思想是编写一个能够自动按照RSS格式生成xml文档的通用类.具体步骤如下: 步骤一:创建RSS通用类 C#代码 using System;   usin ...

  7. systemtap 调试postgrel

    http://blog.163.com/digoal@126/blog/static/16387704020137140265557/   dtrace http://blog.163.com/dig ...

  8. Revit Family API 创建参考平面

    使用API来编辑族时,使用doc.FamilyCreate.NewReferencePlane();创建参考平面. )         {  ];         }         // canno ...

  9. chrome主页被hao123篡改,怎么改回来?

    这两天因为下载个别小程序又把我的chrome的主页给篡改了,由于我现在使用的是任务栏快捷方式,没法右键属性,但我想应该和桌面快捷方式是一个道理,于是我找到任务栏文件夹C:\Users\Administ ...

  10. MongoDB 安装 Windows XP

    〇.  一个提供MonogoDB丰富资料的中文网站 http://www.cnblogs.com/hoojo/archive/2012/02/17/2355384.html 一. http://www ...