ASP.NET MVC轻教程 Step By Step 11——数据注解

将验证规则写在Cotroller里不是一个好办法,这样会显得代码很啰嗦,更重要的是将业务逻辑写入Controller,使得Controller变得更“重”,不符合设计原则。更好的办法是使用验证注解属性,这些属性用于模型类中。

打开Message类,添加注解属性。

using System.ComponentModel.DataAnnotations;
namespace MessageBoard.Models { public class Message { [Required(ErrorMessage = "昵称不能为空")] public string NickName { set; get; } [Required(ErrorMessage = "内容不能为空")] [MinLength(15,ErrorMessage = "内容不能少于15字")] public string Content { set; get; } public DateTime ReleaseDate { set; get; } } }

数据注解特性定义在名称空间System.ComponentModel.DataAnnotations中,常用的注解特性包括

属性名称

描述

Required

标识该属性为必需参数,不能为空

StringLength

标识该字符串有长度限制,可以限制最小或最大长度

Range

标识该属性值范围,通常被用在数值型和日期型

RegularExpression

标识该属性将根据提供的正则表达式进行对比验证

CustomValidation

标识该属性将按照用户提供的自定义验证方法,进行数值验证

接下来删除在Write动作方法中的验证代码。

        [HttpPost]
        public ActionResult Write(Message message)
        {
            if (ModelState.IsValid)
            {
                message.ReleaseDate = DateTime.Now;
                messages.Add(message);   
return RedirectToAction("Index"); } else { return View(message); } }

现在Write方法看起来简洁多了。页面运行结果与上一节一致,但程序代码简洁优雅了许多,所以使用数据注解完成验证功能是我们主要的手段。

posted @ 2015-11-18 20:02  iLoop  阅读(400)  评论(0编辑  收藏  举报