对照scottgu的博客,我试用了一下这个新增的数据验证功能,总的来说,还是比较方便的。我简单地总结步骤如下

1. 添加引用

2. 修改业务实体类,在需要进行验证的Property上面添加一些特殊的Attribute


using System.ComponentModel.DataAnnotations;namespace Web.Models
{public class GalleryListItem{[Required(ErrorMessage="标题是必须的")]public string Title { get; set; }public string Key { get; set; }public string Photo { get; set; }public string Description { get; set; }}
}

3. 在页面中添加脚本引用

    <script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script><script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script><script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
备注:这里必须使用MicrosoftMvcAjax,而不能使用jquery的那个validate.js
MicrosoftMvcAjax貌似会解析Model的所有属性,然后生成有关的验证规则,如下图所示
 

4. 在页面中启用验证

<% Html.EnableClientValidation(); %>

5. 文本框应该采用类似使用如下的语法绑定

        <p><label for="Title">标题:</label><%= Html.TextBoxFor(m=>m.Title)%><%= Html.ValidationMessageFor(m=>m.Title)%></p><p><label for="Description">描述:</label><%= Html.TextBoxFor(m=>m.Description)%><%= Html.ValidationMessageFor(m=>m.Description) %></p>

6. Action代码中使用下面代码进行验证(因为客户端可能禁用javascript,所以服务端还是要验证的)

        [AcceptVerbs(HttpVerbs.Post)]public ActionResult Edit(Models.GalleryListItem model){if (ModelState.IsValid){try{//这里做一些保存的操作return RedirectToAction("List");}catch{return View(model);}}return View(model);}

ASP.NET MVC 2中的数据验证相关推荐

  1. 在ASP.NET MVC 模型中 选择最好的方法将多个model(数据模型)传递到视图

    在ASP.NET MVC 模型中 选择最好的方法将多个model(数据模型)传递到视图 前提介绍 这个文章我们要讨论,在ASP.NET MVC模型的项目中,怎么选择一个最有效的方式来将多个数据模型(m ...

  2. ASP.NET MVC下的四种验证编程方式[续篇]

    ASP.NET MVC下的四种验证编程方式[续篇] 原文:ASP.NET MVC下的四种验证编程方式[续篇] 在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET ...

  3. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...

  4. 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...

  5. ASP.NET MVC动态加载数据

    ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分: <table><tr><th styl ...

  6. 在ASP.NET MVC 4中使用Kendo UI Grid

    Kendo UI 是Telerik推出的一套based on jQuery 的 Framework,提供了很多控件(Menu .Grid .Combox等...), 底层以Html5 + jQuery ...

  7. ajax调用fastreport,使用Ajax更新ASP.Net MVC项目中的报表对象

    Ajax技术显著加快了Web应用程序的速度.另外,视觉效果方面也有提升.大家都同意,每次点击按钮时整个页面都会被刷新这一点不太友好.如果你的网速不是很快,那么这个过程会很烦人,因为所有的元素都会先消失 ...

  8. 关于ASP.NET MVC P5中CheckBox的HtmlHelper方法的bug。

    在ASP.NET MVC P5中,当你使用这样的方法输出CheckBox:<%=Html.CheckBox("checkTest")%>,在浏览器上除了你期望看到的代码 ...

  9. 在ASP.NET MVC应用中开发插件框架(中英对照)

    [原文] Developing a plugin framework in ASP.NET MVC with medium trust [译文] 在ASP.NET MVC应用中开发一个插件框架 I'v ...

最新文章

  1. Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0
  2. 2018.08.20高二互测
  3. HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流
  4. JDBC、DriverManage、JNDI、数据源(DataSource)、连接池的区别
  5. 机器学习——图解SVM中gamma和c参数的作用
  6. c++ 函数指针_进化论——从函数指针到被结构封装的函数指针及参数的应用举例...
  7. chart.js 饼图显示百分比_Excel制作华夫饼图,其实很简单
  8. ubuntu13.04中把ibus中的中文拼音输入设为默认
  9. java——ArrayList中contains()方法中的疑问
  10. MAC中让右键菜单出现终端(命令行)打开文件夹的功能
  11. Python中流程控制-for循环(序列/字典举例)
  12. 人脸识别及数据流处理
  13. 麦肯锡极简工作法-读书笔记
  14. Chrome插件 - FireShot捕捉网页截图(可截取完整页面)
  15. 系统工程师 运维工程师区别
  16. Apple芯片Mac安装ARM版Win10完美教程(结尾附视频)
  17. KO88冲销内部订单结算的操作参考
  18. 测试中常用的正则表达式你知道哪些?
  19. Java打印杨辉三角
  20. 线阵ccd模块LCAMV8-S11639-01/S11638高灵敏线阵图像传感器模组、驱动板

热门文章

  1. Python:遍历指定目录下所有的c语言源代码文件
  2. Tomcat源码中ObjectName这个类的作用
  3. php分享十七:http状态码
  4. C中的extern-static-const关键词
  5. 读书笔记-简单叙述对象关系
  6. 在linux下安装Avria(小红伞)
  7. UIImageView 与 UIImage 区别
  8. Out of resources when opening file './xxx.MYD' (Errcode: 24)解决方法
  9. Java的新项目学成在线笔记-day13(八)
  10. openstack pike版本安装笔记8(Orchestration Server:heat组件,模板服务)