2011-12-18 114 views
0

我有用於容納幾個性質的ASP.NET MVC視圖模型:允許非填充字段

  • 主題
  • 消息
  • 標識

雖然主題和消息是必需的, Id不是必需的(它是隱藏的,只爲現有條目設置 )。不幸的是,MVC根據需要驗證它(即使我沒有設置Required屬性,If字段 也是必需的)。

有人解決?有沒有在這裏找到一個解決方案,也許只是尋找錯誤的...

親切的問候, 薩沙

+1

我們可以看到你的模型? – 2011-12-18 18:51:12

回答

1

如果IdInt ...你可以嘗試使Int?(null的智力)。 如果它是nullabe,我認爲MVC不會驗證它。

另一種方法,將一個默認值放在那個隱藏的,讓我們說一個「-1」...和在控制器上,你可以檢查它。

+0

如果你可以爲空,它不檢查。 – Sascha 2011-12-19 13:36:59

1

默認情況下,ASP.Net Mvc會將不可空的屬性視爲'required' - 即使您沒有將該屬性添加到屬性。如果您的ID是int類型 - 它是不可空的,因此是必需的。

您有兩種基本選擇:

  1. 您的ID屬性更改爲int? - 即一個可空INT。
  2. 將MVC的默認設置更改爲不根據需要考慮不可空屬性。

選項1很簡單。選項2以下內容添加到Application_Start方法中在Global.asax的

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = true;