最初我的模型中有两个必需的日期时间属性。客户端验证适用于他们。但是当我在其中一个属性上注释掉所需的DataAnnotation时,MVC视图仍然生成data-val = true,等等......如何解决这个问题,以便mvc视图不需要渲染字段。
我尝试过$('#endDate')规则('删除','必需') 但它仍然检查必填字段。
型号:
public class mymodel{
...
[Required]
public Datetime startDate { get; set;}
//[Required]
public Datetime endDate {get; set}
}
查看:
@Html.LabelFor(model => mode.endDate ....)
@Html.EditorFor(model => model.endDate, new { htmlAttributes = new { @class = "form-control", id="endDate" } })
查看渲染
<input class="form-control text-box single-line hasDatepicker input-validation-error" data-val="true" data-val-date="The field endDate must be a date." data-val-required="The endDate field is required." id="endDate" ....>
<span class="text-danger field-validation-error" ....>
<span for="endDate" class> The endDate field is required.</span>
</span>
答案 0 :(得分:5)
具有非可空类型(例如DateTime
)的属性本身是必需的,有或没有Required
属性,因为它们必须具有某些值。要使其成为可选项,您必须使用可为空的DateTime
:
public DateTime? endDate { get; set; }