2010-01-06 59 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