2010-01-06 76 views
0

我有一个非常简单的ASP.NET MVC应用程序与基于实体框架的模型。本质上,只是AdventureWorks数据库的产品表。控制器只有索引和CrUD方法。谁在基本的asp.net mvc +实体框架程序验证

创建有以下几点:

 if (!ModelState.IsValid) { 
      return View(); 
     } 
     // Save to the database 

某些字段需要在数据库中,如果没有输入值,我得到一个错误(ModelState.IsValid ==假)。但是,我想提供一些默认值而不是错误。但我无法弄清楚如何挂钩模型验证......我玩“好友元数据”类;所以我知道如何通过注释来更改错误消息;但不是如何“验证”验证过程。

如果它更清晰,我想将ModifiedDate设置为DateTime.Now,并将rowguid设置为Guid.NewGuid()。不用说,真正的问题是在一个大的应用程序中,但这个例子似乎是我想要解决的问题的完美总结。

我可能在控制器中通过导航通过ModelState执行它,但是有一个更好的方法。

这可能是一个非常简单的问题......但我找不到任何示例如何做到这一点。

+0

您正在使用哪个版本的ASP.NET MVC - 1或ASP.NET MVC 2 RC? – 2010-01-06 08:21:30

+0

asp.net mvc 2和EF 1 – Felix 2010-01-06 15:17:41

回答

0

你所需要的是从绑定中排除一些字段。示例代码:

[HttpPost] 
public ActionResult Create([Bind(Exclude = "rowGuid,ModifiedDate")]Task task) 
{ 
    if (ModelState.IsValid) 

如果它被排除在绑定之外,它将被排除在验证之外。您可以自己设置,而不会出现模型错误。

+0

唉,这是我尝试的第一件事...我是否创建一个排除列表,ModelState仍然带有IsValid == false,并且所有条目(包括rowGuid和ModifiedDate)是错误字典的一部分 – Felix 2010-01-06 23:20:20