我有一个视图模型在那里我有需要的字段名为类型: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。