0
我正在使用庫存函數在MVC 4 Razor視圖中顯示日期範圍。開始/結束日期是我模型類中過濾器的一部分。我希望開始/結束日期是可選的。不需要的驗證 - jquery datepicker mvc 4
當我提交表單沒有開始/結束填充它觸發「必填字段」驗證檢查顯示這些可愛的消息:
- 是必需的安裝日期字段。
- 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>
}
什麼的世界正在導致這些領域被要求?
我越來越絕望的時候我加入AllowEmptyString。我希望能有像[必需(IsRequired = false)]的選項。我明白他們正在設置DateTime.MinValue,我仍然不明白這是如何觸發客戶端需要驗證,但。儘管日期時間可以爲空。 – nitewulf50
客戶端驗證正在觸發,因爲如果您不讓屬性爲空,不顯眼的驗證會添加一個Required屬性,因爲null或空字符串不是有效的DateTime。通過使它可以爲空,你說如果沒有值輸入,使這個屬性爲空,這很好。 – Liam