MVC从视图传参到Controller几种方式
来源:互联网 发布:淘宝静物摄影 编辑:程序博客网 时间:2024/05/23 00:03
简单数组传递
var array = ["aaa", "bbb", "ccc"]; $.ajax({ url:"@Url.Action("Test")", type: "POST", data: { array: array }, traditional: true //需要写上该属性,Controller才能接收到 }); public ActionResult Test(List<string> array) { return null; }
单个模型传递
@using (Html.BeginForm("Test", "Home")) { <p><input type="text" name="No" value="001"/></p> <p><input type="text" name="Name" value="Tom" /></p> <p><input type="text" name="Age" value="24"/></p> <p><input type="checkbox" name="Courses" value="语文" /> <input type="checkbox" name="Courses" value="数学" /> <input type="checkbox" name="Courses" value="外语" /> </p> <p><button type="submit">提交</button></p>}public ActionResult Test(Student student) { return null; }
多个模型传递
1.方式一
var models = []; models.push({ No: "001", Name: "Tom", Age: 20, Courses: ["语文", "数学", "外语"] }); models.push({ No: "002", Name: "Jeff", Age: 21, Courses: ["语文", "数学", "外语"] }); models.push({ No: "003", Name: "Hacks", Age: 22, Courses: ["语文", "数学", "外语"] }); $.ajax({ url: '@Url.Action("Test")', data: JSON.stringify(models),//第一个地方,需要进行JSON序列化 type: 'POST', contentType: 'application/json',//第二个地方,需要声明为'application/json',默认'application/x-www-form-urlencoded' success: function (data) { } });public ActionResult Test(List<Student> models) { return null; }
2.方式二 (Model Binder)
需要借助ModelBinder来处理,添加一个类 :JsonModelBinderAttribute.cs
public class JsonModelBinderAttribute : CustomModelBinderAttribute { public override IModelBinder GetBinder() { return new JsonBinder(); } } public class JsonBinder : IModelBinder { public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { //return base.BindModel(controllerContext, bindingContext); if (controllerContext == null) { throw new ArgumentNullException("controllerContext"); } if (bindingContext == null) { throw new ArgumentNullException("bindingContext"); } var prefix = bindingContext.ModelName; string jsonString = controllerContext.RequestContext.HttpContext.Request.Params[prefix]; if (jsonString != null) { var serializer = new JavaScriptSerializer(); var result = serializer.Deserialize(jsonString, bindingContext.ModelType); return result; } else { return null; } } }
var models = []; models.push({ No: "001", Name: "Tom", Age: 20, Courses: ["语文", "数学", "外语"] }); models.push({ No: "002", Name: "Jeff", Age: 21, Courses: ["语文", "数学", "外语"] }); models.push({ No: "003", Name: "Hacks", Age: 22, Courses: ["语文", "数学", "外语"] }); $.ajax({ url: '@Url.Action("Test")', data: { models: JSON.stringify(models) }, type: 'POST', success: function (data) { } });public ActionResult Test([JsonModelBinder]List<Student> models) { return null; }
阅读全文
0 0
- MVC从视图传参到Controller几种方式
- 关于MVC中控制器(controller)向视图(view)传值的几种方式
- MVC控制器与视图传递数据的几种方式
- ASP.NET MVC中从后台控制器(Controller)传递数据到前台页面视图(View)方式
- ASP.NET MVC Controller向View传值的几种方式
- 在spring mvc controller中常用的几种跳转方式
- asp.net MVC前台View页面向后台Controller控制器传递数据的几种方式
- 从一个视图控制器切换到另一个视图控制器的几种方式
- 从一个视图控制器切换到另一个视图控制器的几种方式
- 从一个视图控制器切换到另一个视图控制器的几种方式
- 从一个视图控制器切换到另一个视图控制器的几种方式
- 从一个视图控制器切换到另一个视图控制器的几种方式
- 调用Controller方法的几种方式
- ASP.NET MVC从视图传递多个模型到Controller
- ASP.NET MVC从视图传递多个模型到Controller
- ASP.NET MVC中将数据从Controller传递到视图方法
- 一、总结几种关于ViewControllers之间传值的方式(从父视图向子视图传值)
- 二、总结几种关于ViewControllers之间传值的方式(从子视图向父视图传值)
- socket的概念和原理
- 【云栖大会】阿里巴巴发布AliGenie 语音开放平台 “智联网”战略又落一子
- spring-事务传播特性
- Jmeter之逻辑控制器(Logic Controller)
- 设计模式C++实现(7)——外观模式、组合模式
- MVC从视图传参到Controller几种方式
- Spring和hibernate集成写API进行CRUD操作
- struts2 url 传参 中文乱码 的一种解决办法
- 为图片添加水印的源码
- Django模型model
- 【Linux环境搭建】——nginx安装教程
- ETL工具—kettle使用之三
- JDK8的安装与配置-Linux之Debian系统
- C++11支持使用or代替||符号