Asp.net MVC 通过Attribute验证datamodel(一)
2012-08-08 21:23
483 查看
1. 除了可以使用Required, StringLength等Attribute,asp.net mvc中还可以自定义属于自己的验证Attribute。
例如:
2.定义DataModel,并且使用上面定义的attribute
这里定义专辑的Title必须包含有“月亮”二字
3. 绑定属性到前台页面
4. 添加Action在Controller.
运行程序,然后就可以在前台页面修改一些值,看到验证效果
例如:
//验证逻辑就是判断专辑的Title是否包含某一个关键字 public class AlbumTitleValidateAttribute : ValidationAttribute { private readonly string _keyword; public AlbumTitleValidateAttribute(string keyword) { if (string.IsNullOrEmpty(keyword)) throw new Exception("invalid usage"); _keyword = keyword; } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (value != null && value.ToString().ToUpper().Contains(_keyword.ToUpper())) { return ValidationResult.Success; } else return new ValidationResult(string.Format("Title does not contain the keyword({0})", _keyword)); } }
2.定义DataModel,并且使用上面定义的attribute
public class Album { public int ID { get; set; } [Required] [AlbumTitleValidateAttribute("月亮")] public string Title { get; set; } [Required] [StringLength(3)] public string Author { get; set; } }
这里定义专辑的Title必须包含有“月亮”二字
3. 绑定属性到前台页面
@using (Html.BeginForm("Index", "Home", FormMethod.Post)) { <p> @Html.EditorFor(m => m.Title) @Html.ValidationMessageFor(m => m.Title) </p> <p> @Html.EditorFor(m => m.Author) @Html.ValidationMessageFor(m => m.Author) </p> @Html.HiddenFor(m => m.ID) <input type="submit" value="submit" /> }
4. 添加Action在Controller.
[HttpPost] public ActionResult Index(Album album) { if (ModelState.IsValid) { return RedirectToAction("About"); } return View(album); }
运行程序,然后就可以在前台页面修改一些值,看到验证效果
相关文章推荐
- Asp.net MVC 通过Attribute验证datamodel(二) ---使用IClientValidatable
- ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidator
- ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】【续Model验证部分】
- ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidatorProvider
- ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidatorProvider
- ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidator
- ASP.NET MVC 入门6: model的验证
- 通过实例模拟ASP.NET MVC的Model绑定机制[上篇]
- ASP.NET MVC Model验证(五)
- ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidatorProviders
- ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidatorProviders
- ASP.NET MVC Model 验证 常用正则表达式
- MVC学习十四:ASP.NET MVC如何实现自定义验证 AgeRangeAttribute
- ASP.NET MVC的客户端验证:jQuery验证在Model验证中的实现
- asp.net mvc源码分析-ModelValidatorProviders 客户端的验证
- ASP.NET MVC Model验证(二)
- ASP.NET MVC Model验证(二)
- ASP.NETMVC Model验证(五) 推荐
- ASP.NET MVC基于标注特性的Model验证:ValidationAttribute
- ASP.NET MVC 学习7、为Model Class的字段添加验证属性(validation attribuate)