ストック関数を使用して、MVC4Razorビューに日付範囲を表示しています。開始日/終了日は、私のモデルクラスのフィルターの一部です。開始日/終了日をオプションにしたい。
開始/終了を入力せずにフォームを送信すると、「必須フィールド」検証チェックがトリガーされ、次の素敵なメッセージが表示されます。
- [インストール日]フィールドは必須です。
- 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>
}
いったい何がフィールドを必要としているのでしょうか?