asp.net mvc 自定义模型绑定
2018-03-23 15:12
260 查看
在asp.net mvc的控制器中如果能够活用模型的自动绑定功能的话能够减少许多工作量。但是如果我们想要对前台传来的数据进行一些处理再绑定到模型上,该怎么做呢?
这里用一个绑定用户数据的小案例来讲解asp.net的自定义模型绑定。
新建用户模型:
public class User { public string name { set; get; } public int age { set; get; } public DateTime day { set; get; } }
新建UserCustomBinder类,继承自DefaultModelBinder类(来自system.web.mvc)
public class UserCustomBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { if (bindingContext.ModelType == typeof(User)) { var request = controllerContext.HttpContext.Request; string name = request.Form.Get("name")+"testtest"; int age = int.Parse(request.Form.Get("age")); DateTime day = Convert.ToDateTime(request.Form.Get("date")); return new User { name = name, age = age, day = day }; } else { return base.BindModel(controllerContext, bindingContext); } } }
然后再Global.asax.cs中添加UserCustomBinder类。
ModelBinders.Binders.Add(UserCustomBinder);
控制器:
public ActionResult CustModelView() { return View(); } public ActionResult CustModel(User user) { return Content("123"); //在这里下断点 }
视图:
@model dynamic <!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <div> <form method="post" action="/home/CustModel"> <input type="text" name="name" value="" /> <input type="number" name="age" value="" /> <input type="date" name="day"/> <input type="submit" value="submit"/> </form> </div> </body> </html>
填写并提交视图上的表单后可以发现User类已经实现了自定义绑定。
相关文章推荐
- asp.net MVC 自定义模型绑定 从客户端中检测到有潜在危险的 Request.QueryString 值
- ASP.NET MVC 的自定义模型属性别名绑定
- asp.net Mvc 的自定义模型绑定
- ASP.NET MVC数组模型绑定详解
- ASP.NET MVC 4 (九) 模型绑定
- Asp.net Mvc 中的模型绑定
- (转)ASP.NET MVC 模型绑定的功能和问题
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- ASP.NET没有魔法——ASP.NET MVC 模型绑定
- asp.net mvc 模型绑定太糙淡了
- 《Pro ASP.NET MVC 3 Framework》学习笔记之二【领域模型的概念介绍及MVC模型绑定】
- ASP.NET MVC数组模型绑定
- asp.net mvc 中的模型绑定
- ASP.NET MVC 4 (九) 模型绑定
- asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
- asp.net Mvc 模型绑定项目过多会导致页面运行时间卡
- ASP.NET MVC——模型绑定
- ASP.NET MVC 模型绑定的 6 个建议
- 在ASP.NET MVC中使用Knockout实践09,自定义绑定
- ASP.NET MVC中 Jquery AJAX 获取数据利用MVC模型绑定实现输出