ASP.NET MVC 2中的数据验证
对照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中的数据验证相关推荐
- 在ASP.NET MVC 模型中 选择最好的方法将多个model(数据模型)传递到视图
在ASP.NET MVC 模型中 选择最好的方法将多个model(数据模型)传递到视图 前提介绍 这个文章我们要讨论,在ASP.NET MVC模型的项目中,怎么选择一个最有效的方式来将多个数据模型(m ...
- ASP.NET MVC下的四种验证编程方式[续篇]
ASP.NET MVC下的四种验证编程方式[续篇] 原文:ASP.NET MVC下的四种验证编程方式[续篇] 在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET ...
- C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...
- 【初学者指南】在ASP.NET MVC 5中创建GridView
介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...
- ASP.NET MVC动态加载数据
ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分: <table><tr><th styl ...
- 在ASP.NET MVC 4中使用Kendo UI Grid
Kendo UI 是Telerik推出的一套based on jQuery 的 Framework,提供了很多控件(Menu .Grid .Combox等...), 底层以Html5 + jQuery ...
- ajax调用fastreport,使用Ajax更新ASP.Net MVC项目中的报表对象
Ajax技术显著加快了Web应用程序的速度.另外,视觉效果方面也有提升.大家都同意,每次点击按钮时整个页面都会被刷新这一点不太友好.如果你的网速不是很快,那么这个过程会很烦人,因为所有的元素都会先消失 ...
- 关于ASP.NET MVC P5中CheckBox的HtmlHelper方法的bug。
在ASP.NET MVC P5中,当你使用这样的方法输出CheckBox:<%=Html.CheckBox("checkTest")%>,在浏览器上除了你期望看到的代码 ...
- 在ASP.NET MVC应用中开发插件框架(中英对照)
[原文] Developing a plugin framework in ASP.NET MVC with medium trust [译文] 在ASP.NET MVC应用中开发一个插件框架 I'v ...
最新文章
- Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0
- 2018.08.20高二互测
- HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流
- JDBC、DriverManage、JNDI、数据源(DataSource)、连接池的区别
- 机器学习——图解SVM中gamma和c参数的作用
- c++ 函数指针_进化论——从函数指针到被结构封装的函数指针及参数的应用举例...
- chart.js 饼图显示百分比_Excel制作华夫饼图,其实很简单
- ubuntu13.04中把ibus中的中文拼音输入设为默认
- java——ArrayList中contains()方法中的疑问
- MAC中让右键菜单出现终端(命令行)打开文件夹的功能
- Python中流程控制-for循环(序列/字典举例)
- 人脸识别及数据流处理
- 麦肯锡极简工作法-读书笔记
- Chrome插件 - FireShot捕捉网页截图(可截取完整页面)
- 系统工程师 运维工程师区别
- Apple芯片Mac安装ARM版Win10完美教程(结尾附视频)
- KO88冲销内部订单结算的操作参考
- 测试中常用的正则表达式你知道哪些?
- Java打印杨辉三角
- 线阵ccd模块LCAMV8-S11639-01/S11638高灵敏线阵图像传感器模组、驱动板
热门文章
- Python:遍历指定目录下所有的c语言源代码文件
- Tomcat源码中ObjectName这个类的作用
- php分享十七:http状态码
- C中的extern-static-const关键词
- 读书笔记-简单叙述对象关系
- 在linux下安装Avria(小红伞)
- UIImageView 与 UIImage 区别
- Out of resources when opening file './xxx.MYD' (Errcode: 24)解决方法
- Java的新项目学成在线笔记-day13(八)
- openstack pike版本安装笔记8(Orchestration Server:heat组件,模板服务)