码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET MVC3 ModelState.IsValid为false的问题

时间:2014-07-15 00:07:19      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:使用   strong   os   问题   io   cti   

模型验证通常在submit后调用Action之前进行验证,eg:

 

 public class ZhengXing
    {
        [Key]
        public int ZhengXingId { get; set; }                   //使用Key关键字要引用System.ComponentModel.DataAnnotations


        [DisplayName("标题")]
        [Required(ErrorMessage = "请输入标题")]
        [MaxLength(60, ErrorMessage = "标题长度不能大于60个字符.")]
        public string Title { get; set; }


        [DisplayName("内容")]
        [Required(ErrorMessage = "请输入内容")]
        [MaxLength(8000, ErrorMessage = "内容长度不能大于8000个字符.")]
        public string Content { get; set; }


        [DisplayName("作者")]
        [Required(ErrorMessage = "作者不能为空")]
        public string Author { get; set; }


        [DisplayName("创建时间")]
        public DateTime CreateDate { get; set; }


        [DisplayName("阅读次数")]
        public int ClickCount { get; set; }
    }
}

 

 

 public ActionResult Create([Bind(Exclude="ZhengXingId")]ZhengXing zhengxing)
        {
            zhengxing.Author = Session["UserName"].ToString();
            zhengxing.CreateDate = DateTime.Now;
            if (ModelState.IsValid)
            {
                db.ZhengXings.Add(zhengxing);
                db.SaveChanges();
                return RedirectToAction("ManageIndex");
            }
            else
                return View(zhengxing);
        }

 

ZhengXing模型里面有Title,Content,Author,CreateDate,ClickCount这几个字段,但是在create页面仅仅给title和content赋值,并没有给Author和CreateDate赋值,而是在后台赋值,但是每次ModelState.IsValid都为false,最后终于发现问题了,只要将模型里的[Required(ErrorMessage = "作者不能为空")]注释掉就行。

 

最终总结:ModelState.IsValid的验证是在Submit后Action调用前进行模型验证。

ASP.NET MVC3 ModelState.IsValid为false的问题,布布扣,bubuko.com

ASP.NET MVC3 ModelState.IsValid为false的问题

标签:使用   strong   os   问题   io   cti   

原文地址:http://www.cnblogs.com/tech-bird/p/3842153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!