Asp.net MVC2中你必须知道的扩展点(二):Model Binder

Model Binder在Asp.net MVC中非常简单。简单的说就是你控制器中的Action方法需要参数数据;而这 些参数数据包含在HTTP请求中,

包括表单上的Value和URL中的参数等。而ModelBinder的功能就是将这些个表单上的Value和URL中的参 数换成对象,然后将这些对象绑定

到Action的参数上面。我简单的画了一个图,看起来会更加直观。

在asp.net mvc中你可以写类似下面这样的代码:

[HttpPost]
public ActionResult Create()
{
     Book book = new Book();
     book.Title = Request.Form["Title"];
     // ...
     return View();
}

但是这样的写法是非常不可取的,因为代码不容易阅读,也不易测试。再看下面的写法:

[HttpPost]
public ActionResult Create(FormCollection values)
{
     Book book = new Book();
     book.Title = values["Sex"];
     // ...
     return View();
}

时间: 2024-10-02 18:01:24

Asp.net MVC2中你必须知道的扩展点(二):Model Binder的相关文章

Asp.net MVC2中你必须知道的扩展点(一):Controller Factory

Asp.net mvc2中提供很多可以扩展的地方,利用这些扩展之后,asp.net mvc使用起来更加灵活. Simone Chiaretta曾写过一篇文章:13 ASP.NET MVC extensibility points you have to know.文章中 概括性的介绍了13个asp.net mvc开发人员必须知道的扩展点.我将从这13个扩展点中挑选几个常见的重 要的扩展点进行详细的介绍.这篇将文章将首先介绍Controller Factory. Controller Factor

Linq to SQL加注Data Annotation在Asp.Net MVC2中的应用

一.写作前提 最近正在做一个Asp.Net MVC2的Project,用到了Linq to SQL,但是对于如何在MVC2中使用 Linq to SQL 生成的强类型加注Data Annotation,我们都知道在MVC2中我们可以定义自己的Model,然后给Model 加Data Annotation,从而在View中可以实现完美的Client Validation(这些Data Annotation也我们也可 以去自己定义).但是对于Linq to SQL 生成的强类型,我们有两个问题,第一

Asp.net Mvc2中重构View的三种方式

我们在Asp.net mvc的view开发过程中,如果不注意可能会写大量的重复的代 码.这篇文章介绍3种方式重构View的代码,来减少View中的重复代码. 1.母板页 在Asp.net mvc中保留了母板页的使用,我们可以使用母板页对我们的站点进 行布局.看下面母板页的代码: <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> <!DOCTYPE html PU

一起谈.NET技术,ASP.NET MVC2中Controller向View传递数据的三种方式

在Asp.net mvc开发中,Controller需要向View提供Model,然后View将此Model渲染成HTML.这篇文章介绍三种由Controller向View传递数据的方式,实现一个DropDownList的显示. 第一种:ViewData ViewData是一个Dictionary.使用非常简单,看下面代码: public ActionResult ViewDataWay(int id){ Book book =bookRepository.GetBook(id); ViewDa

ASP.NET MVC2中Controller向View传递数据的三种方式

在Asp.net mvc开发中,Controller需要向View提供Model,然后View将此 Model渲染成HTML.这篇文章介绍三种由Controller向View传递数据的方式,实现 一个DropDownList的显示. 第一种:ViewData ViewData是一个Dictionary.使用非常简单,看下面代码: 1 public ActionResult ViewDataWay(int id) 2 { 3 Book book =bookRepository.GetBook(id

十步教你ASP.NET MVC2项目升级MVC 3 RC

微软在10号发布了ASP.NET MVC3的发布候选版(RC:Release-candidate),该版本提供了Razor视图引擎的智能感知等功能,并同样具备Online许可.眼馋的同学是不是已经迫不及待的想将现有项目升级呢?这里我就将官方ReleaseNotes中的升级办法翻译总结一下,以方便那些不喜欢看罗里嗦的英文文档的广大同学. 译文 要将现有的ASP.NET MVC2项目手动升级到ASP.NET MVC3(RC),我们需要如下这些步骤: 1. 随便创建一个新的ASP.NET MVC3项目

如何将ASP.NET MVC2项目升级到MVC 3 RC

微软在10号发布了ASP.NET MVC3的发布候选版(RC:Release-candidate),该版本提供了Razor视图引擎的智能感知等功能,并同样具备Online许可.眼馋的同学是不是已经迫不及待的想将现有项目升级呢?这里我就将官方ReleaseNotes中的升级办法翻译总结一下,以方便那些不喜欢看罗里嗦的英文文档的广大同学. 译文 要将现有的ASP.NET MVC2项目手动升级到ASP.NET MVC3(RC),我们需要如下这些步骤: 1. 随便创建一个新的ASP.NET MVC3项目

一起谈.NET技术,在ASP.NET MVC中进行TDD开发

TDD介绍 TDD是一种开发方法,全称是Test-Driven development,中文是测试驱动开发.作者是Kent Beck.首先让我介绍一下三种常见的开发方式: 第一种:先Coding,然后Bug Fix. 第二种:先Coding,然后Unit Test,最后Bug Fix.很显然用了单元测试的比第一种开发方式要好不少. 第三种:就是本文要说的TDD,它的方式和第二种恰恰相反.TDD先设计单元测试,然后再Coding,最后修复Bug.看下图: TDD开发过程可以看成:给制自己制定一个目

一起谈.NET技术,ASP.NET MVC中的Json Binding和Validate

电子商务网站支付功能页面往往会有很多信息,对于这些信息的保存,往往是分步完成的,那么使用Ajax最合适不过了,比如其中的收货人信息模块.这些信息的新建和编辑保存都是用Ajax来完成的.那么有几种方式完成这个操作呢,我想到如下几种. 先来看看该功能的截图: 一般情况下这些信息会对应一个实体类,就命名为:ReceiverInfo,简单起见,我定义ReceiverInfo如下: 1.将需要的值拼接成json文本,再Action里面处理 首先您需要将要保存的值拼接成一个json文本,类似: var te