2012-03-09 78 views
1

我有一個用於創建類似項目的表單。我將簡化演示的場景。ASP.Net MVC不同的必填字段

您可以創建許多「內容類型」之一。您可以選擇添加「文件」,「文件夾」,「通知」等。我將使用/ home/addcontent?contenttype = FILE來確定在視圖中顯示哪些選項。

每個內容項目具有以下內容。

  1. 名稱
  2. 說明(可選)

「文件」 也有:

  1. 列表項
  2. 文件路徑

公告還具有:

  1. 優先
  2. DisplayHomepageFLG(可選)

我可以與所有的數據註解的所有這些添加到一個視圖模型,但由於每個「內容類型」 modelstate.isvalid幾乎從不會是真實的具有獨特的性質。

是否有一些編程方式來添加或排除特定的數據註釋,或者我應該爲每種內容類型都有一個單獨的viewmodel和控制器?

+0

不,沒有編程方式。 (我知道的)。分開那些壞男孩和/或使用多態技巧來促進代碼重用。 – RPM1984 2012-03-09 06:16:14

+0

在這裏尋找可能的解決方案:http://stackoverflow.com/a/5367788/114029 – 2012-04-15 15:37:55

回答

0

我能想到的唯一方法是使用RemoteValidationAttribute

Look here也爲樣本

然後在你的控制器,你不會用ModelState.IsValid,但只有在驗證你的業務邏輯層

您也可以想到用JQuery.validation與您自己的腳本來檢查字段