我正在使用 stock 函数在 MVC 4 Razor 视图中显示日期范围。开始/结束日期是我的模型类中过滤器的一部分。我希望开始/结束日期是可选的。
当我提交没有填写开始/结束的表单时,它会触发“必填字段”验证检查,显示这些可爱的消息:
- 安装日期字段是必需的。
- InstalledDateEnd 字段是必需的。
然而表单确实提交并且我的过滤器运行并返回结果。
<script>
$(function () {
$("#InstalledDateStart").datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onSelect: function (selectedDate) {
$("#InstalledDateEnd").datepicker("option", "minDate", selectedDate);
}
});
$("#InstalledDateEnd").datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onSelect: function (selectedDate) {
$("#InstalledDateStart").datepicker("option", "maxDate", selectedDate);
}
});
});
</script>
我尝试告诉模型不需要这些字段,但没有帮助:
[Display(Name = "Installed Date")]
[Required(AllowEmptyStrings = true)]
public DateTime InstalledDateStart { get; set; }
[Required(AllowEmptyStrings = true)]
public DateTime InstalledDateEnd { get; set; }
这是视图中的标记:
@using (Html.BeginForm("Filter", "Search"))
{
<div class="divSearchBlock">
<br style="clear:left;" />
<div>
<b>@Html.DisplayNameFor(model => model.ConstraintModel.InstalledDateStart)</b>
@Html.TextBox("InstalledDateStart", null, new { @class = "divCellContent" })
<b>-</b>
@Html.TextBox("InstalledDateEnd", null, new { @class = "divCellContent" })
</div>
<input type="submit" value="Submit"/>
</div>
}
到底是什么导致需要这些字段?