我有一個視圖模型在那裏我有需要的字段名爲類型:MVC視圖模型[必需] DropDownListFor
[Required]
public string Type{ get; set; }
我使用不同的頁面上,但在某些情況下,這種視圖模型,不需要類型。 我想知道如何告訴頁面沒有Type是必需的。
我想是什麼把一個
@Html.HiddenFor(model => model.Type)
,但沒有奏效。
我有一個視圖模型在那裏我有需要的字段名爲類型:MVC視圖模型[必需] DropDownListFor
[Required]
public string Type{ get; set; }
我使用不同的頁面上,但在某些情況下,這種視圖模型,不需要類型。 我想知道如何告訴頁面沒有Type是必需的。
我想是什麼把一個
@Html.HiddenFor(model => model.Type)
,但沒有奏效。
如果您希望使用相同的視圖模型出於使用foolproof庫的原因,萬無一失的目的是擴展ASP.NET MVC中提供的數據註釋驗證。最初的努力主要集中在增加臨時驗證。
所需的屬性了他箱子是:
[RequiredIf]
[RequiredIfNot]
[RequiredIfTrue]
[RequiredIfFalse]
[RequiredIfEmpty]
[RequiredIfNotEmpty]
[RequiredIfRegExMatch]
[RequiredIfNotRegExMatch]
萬全的美妙之處在於它使用unobstrusive技術開箱即用支持客戶端驗證。
所以你的情況
[RequiredIfTrue("ShouldValidateType"]
public string Type{ get; set; }
public bool ShouldValidateType {get; set;}
如果ShouldValidateType是真實的屬性類型只會驗證。
你不能做到這一點與RequiredAttribute
要麼寫/獲得自定義條件屬性,像RequiredIfAttribute
(一個例子here)
或者使用FluentValidation代替DataAnnotations的。
或使用不同的ViewModels。