您的位置:首页 > 编程语言 > ASP

ASP.NET MVC 入门8、ModelState与数据验证

2016-04-20 14:10 681 查看
原帖地址:http://www.cnblogs.com/QLeelulu/archive/2008/10/08/1305962.html

ViewData有一个ModelState的属性,这是一个类型为ModelStateDictionary的ModelState类型的字典集合。在进行数据验证的时候这个属性是比較实用的。在使用Html.ValidationMessage()的时候,就是从ViewData.ModelState中检測是否有指定的KEY。假设存在。就提示错误信息。比如在前一篇文章ASP.NET
MVC 入门7、Hellper与数据的提交与绑定中使用到的UpdateModel方法:

Validation

我们在Post类中重写这种方法来加入验证规则:





然后我们能够在Controller的Action中非常优雅的书写我们的代码来进行业务规则的验证:

[AcceptVerbs("POST"), ActionName("NewPost")]

public ActionResult SaveNewPost(FormCollection form)

{

Post post = new Post();

try

{

UpdateModel(post, new[] {"Title","Content","Slug"
});

}

catch

{

return View(post);

}

if (!post.IsValid)

{

foreach (string keyin post.BrokenRules.Keys)

{

ViewData.ModelState.AddModelError(key, form[key], post.BrokenRules[key]);

}

return View(post);

}

post.Save();

return ShowMsg(new List<string>()
{ "发表新随笔成功" });

}

我们注意到上面的Action中用到了一个FormCollection 的參数,这个參数系统会自己主动将Form提交过来的所有表单值(Request.Form)赋给它的。client验证能够用jQuery的验证插件来。这里就不罗嗦了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: