私は、選択可能なリストと、ヌル入力可能な日付フィールドのために生成されるいくつかのテキストボックスを持つ編集ビューを持っています。日付が存在しない場合、検証は行われません - これは正しいです。nullの可能な日付フィールドで発射されない妥協のない検証
ただし、無効な日付を入力した場合、検証でそれが検出されず、自分の操作に進みます。日付フィールドの検証を強制するにはどうすればよいですか?
マイモデル:
public class CaseEmployer
{
public int Id { get; set; }
public int CaseId { get; set; }
public Company Company { get; set; }
[Display(Name = "Start Date")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode=true)]
public DateTime? StartDate { get; set; }
[Display(Name = "End Date")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? EndDate { get; set; }
public int? UserId { get; set; }
public DateTime? TimeStamp { get; set; }
}
マイビュー:
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Employer</legend>
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.CaseId)
<div class="editor-label">
@Html.Label("Company:")
</div>
<div class="editor-field">
<select name="companySelect" id="companySelect">
@foreach (var company in ViewBag.CompanyOptions)
{
<option value="@company.Key">@company.Value</option>
}
</select>
</div>
<div class="editor-label">
@Html.LabelFor(model => model.StartDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.StartDate)
@Html.ValidationMessageFor(model => model.StartDate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.EndDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.EndDate)
@Html.ValidationMessageFor(model => model.EndDate)
</div>
<p>
<input type="submit" value="Update" />
<input type="button" value="Cancel" onclick="javascript:window.close()" />
<input type="button" value="Delete" onclick="javascript:confirmDeleteCaseEmployer()" />
</p>
</fieldset>
**編集**
私は "必須" 検証がトリガーするかどうかをテストするクラスに属性を追加、私がStartDateとEndDateなしでフォームを提出した場合、検証はこれらの属性でトリガーされます。
ありがとうございました!
どのフィールドが検証されていませんか?あなたのDateTimeフィールドの1つには検証がありませんし、他の2つには両方ともRequired検証があります。 –
@qesフォームが最初にレンダリングされたときに、空白の値を持つテキストボックスを表示するためにnullableにする必要はありませんか? – danludwig
申し訳ありませんが、テストのために必要なものがありました。 – TheGeekYouNeed