MVC 5视图仍然呈现必填字段

时间:2015-12-21 21:06:48

标签: asp.net-mvc

最初我的模型中有两个必需的日期时间属性。客户端验证适用于他们。但是当我在其中一个属性上注释掉所需的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>

1 个答案:

答案 0 :(得分:5)

具有非可空类型(例如DateTime)的属性本身是必需的,有或没有Required属性,因为它们必须具有某些值。要使其成为可选项,您必须使用可为空的DateTime

public DateTime? endDate { get; set; }