上一篇:ASP.NET MVC 2系列教程之一:强类型HTML辅助方法

这是我针对即将发布的ASP.NET MVC 2所撰写的贴子系列的第二篇,这个博客贴子将讨论 ASP.NET MVC 2中一些验证方面的改进。

ASP.NET MVC 2 验证

对用户输入的验证以及强制业务规则/逻辑是大多数web应用的核心需求。ASP.NET MVC 2包含了一堆新的特性,显著地简化了对用户输入的验证以及在模型/视图模型中对验证逻辑的强行实施。这些特性是这样设计的,验证逻辑总是在服务器上执行的,也可以选择在客户端通过JavaScript来执行。ASP.NET MVC 2中的验证设施和特性这般设计,以便:

1) 开发人员可以轻易地利用内置于.NET框架中的DataAnnotation验证支持。DataAnnotation提供了一个非常简便的方式,使用最少的代码在对象和属性上用声明的方式添加验证规则。

2) 开发人员可以集成他们自己的验证引擎,或者利用现有的验证框架,象Castle验证器或EntLib验证库。ASP.NET MVC 2的验证特性是设计来在利用新的 ASP.NET MVC 2的验证设施(包括客户端验证,模型绑定验证等等)的同时,简化任何类型的验证架构的插入的。

这意味着,在常见的应用场景中启用验证是极其容易的,同时对更高级的场景则还能保持极好的灵活性。

使用 ASP.NET MVC 2 和 DataAnnotation来启用验证

让我们在ASP.NET MVC 2中来全程示范一个简单的CRUD场景,利用新的内置DataAnnotation验证支持。具体来说,让我们来实现一个“Create”表单来允许用户输入朋友的数据:

附件: image_7692AC83.png

我们想要确保在保存到数据库之前,输入的信息是合法的,如果不合法,就显示合适的错误消息:

附件: image_44D78F2E.png

我们想要使得这个验证同时在服务器端和客户端(通过 JavaScript)发生。我们还想要确保我们的代码遵守DRY原则(Don't Repeat Yourself,不重复自己),意味着我们应该只在一处实施验证规则,然后使得我们的控制器,action方法和视图来兑现这个承诺。

在下面,我将使用VS 2010,用ASP.NET MVC 2来实现上面的场景。你也可以使用VS 2008及ASP.NET MVC 2来实现完全一样的场景。
TOP