同じモデルにアクセスする2つの別々のビューがあります。バリデーターデータの注釈をモデルに配置すると、アドバタイズされたとおりに機能し、空白のままにするか範囲内にない場合、データが(両方のビューで)送信されないようにします。ただし、プロパティの空またはnull値を保存できるビューが1つありますが、別のビューでは、情報を入力または選択してから通過させる必要があります。つまり、一方のビューではモデル内のプロパティのバリデーターをオフにし、もう一方のビューではオンのままにしておきます。サンプルコードは次のとおりです。
モデル:
[Range(1, 999, ErrorMessage = "A submittal is required")]
public int SubmittalId { get; set; }
ビュー#1:
<label>@Model.AuditDoc.SubmittalsLabel.ConfigurableLabelDesc</label> @Html.ValidationMessageFor(x => x.AuditDoc.SubmittalId) @Html.DropDownListFor(x => x.AuditDoc.SubmittalId, new SelectList(Model.AuditDoc.ListOfSubmittals, "Id", "Name"))
ビュー#2:
<label>@Model.AuditDoc.SubmittalsLabel.ConfigurableLabelDesc</label> @Html.DropDownListFor(x => x.AuditDoc.SubmittalId, new SelectList(Model.AuditDoc.ListOfSubmittals, "Id", "Name"))
ご覧のとおり、ビュー#2ではそのバリデーターデータアノテーションを無効にし、ビュー#1ではオンのままにしておきます。