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

最近在工作中用到了在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; ....

时间: 2024-10-22 11:46:47

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

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

最近在工作中用到了在ASP.NET MVC中以post方式传递数组参数的情况,记录下来,以供参考. 一.准备参数对象 在本例中,我会传递两个数组参数:一个字符串数组,一个自定义对象数组.这个自定义对象UserInfo定义如下: public class UserInfo { public int UserId { get; set; } public string UserName { get; set; } } 二.后台代码 后台Action代码如下: [HttpPost] public Ac

(四)ASP.NET MVC 中 Controller 给 View 传递数据的方式

1. ViewData: 以 ViewData["keyname"] = value 这样键值对的方式进行数据传送.在对应的 cshtml 中用 @ViewData["keyname"] 来获取值. 2. ViewBag: ViewBag 是 dynamic 类型的,是对 ViewData 的一人动态类型封装,用起来更方便,和 ViewData 共同操作一个数据 .在 Controller 中使用 ViewBag.keyname=value 来赋值,在 cshtml

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

http://www.cnblogs.com/errorif/archive/2012/02/13/2349902.html 在Asp.Net MVC 1.0编程中,我们经常遇见这样的场景,在新建一个对象时候,通过HtmlHelper的方式在View模型中渲染Html控件,当填写完相关内容后,通过Form把需要新建的内容Post回View对应Controller的Action(例如:Create),指定的Action可以通过接受FormCollection参数.值参数或者某个类的实例参数(比如:

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

方法1: ?id=1&id=2&id=3 后台获取时,只需要reqeust.getParameterValues("id") 获取String数组. http协议的要求 解析参数时,相同的key会覆盖前一个,如果带[]会当成一维数组来处理,就不会覆盖了 直接可以url =url+"?str1="+arrayP[0]+"&str2="+arrayP[1]; Generally, when the target server

关于在ASP.NET MVC 中使用EF的Code First的方式来读取数据库时的Validation failed for one or more entities. See &#39;EntityValidationErrors&#39; property for more details.

今天在做一个小网站的时候遇到很多问题唉,我还是个菜鸟,懂的也不多,今天一个表单的提交按钮用不了,都弄了几个小时唉.不过最后还是搞定了,还有浏览器有开发人员选项,不然我都不知道我还要继续排查多久哦,今天晚上在把数据存入数据库的又出现了问题.我使用的是Entity Framework的Code First模式来访问数据库的.对于数据的验证我在数据模型上加了数据注解.当然在前台也引入了一些JS这样就可以再不把数据提交到服务器时完成验证功能.在后台保存用户提交的数据的时候,我们要用到ModelStatu

ASP.NET MVC中的Session以及处理方式

最近在ASP.NET MVC项目中碰到这样的情况:在一个controller中设置了Session,但在另一个controller的构造函数中无法获取该 Session,会报"System.NullReferenceException"错误.之所以这样做是因为希望在controller构造函数中获 取Session值并赋值给一个全局变量,好让该controller的多个action共享. 起先以为是ASP.NET State Service服务没有开启,或者是Web.config中se

log4net 使用总结- (2)在ASP.NET MVC 中使用

log4net在ASP.NET MVC中的配置,还有一种配置方式,即不在web.config中,而是单独新建一个log4net.config 在根目录下 第一.引用log4net.dll 第二.在站点根目录下增加log4net.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="

ASP.NET MVC中使用ASP.NET AJAX异步访问WebService

使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也没什么大的差别. 在ASP.NET应用程序里使用ASP.NET AJAX访问WebService通常都是通过ScriptMananger引入WebService生成客户端代理的方法,同时也可以使用Microsoft Ajax Library来完成.本文将介绍在ASP.NET MVC中使用ASP.NE

ASP.NET MVC中使用FluentValidation验证实体

1.FluentValidation介绍 FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开来的验证方式,同时FluentValidation还提供了表达式链式语法. 2.安装FluentValidation FluentValidation地址:http://fluentvalidation.codeplex.com/ 使用Visual Studio的管理NuGet程序包安装FluentVa