MVC5の使用ビューロジックを追加して、モデルの値に基づいてデータ入力を無効にしました。ロジックが実行された後、既存のEditorTemplateロジックによってオーバーライドされます。フィールドは有効なままです。ディスエーブルロジックを動作させるにはどうすればよいですか?その後EditorTemplateロジックがViewロジックをオーバーライドできないようにするにはどうすればよいですか?
<div>
@{
object attributes = new { @class = "form-control", @disabled = "disabled", @readonly = "readonly" };
if (Model.OnHold.Number == 0) {
attributes = new { @class = "form-control datePicker" };
}
@Html.EditorFor(model => model.OnHold.DateIssued, attributes);
}
</div>
競合EditorTemplateコード::このビューロジックは、最初に実行
@model DateTime
@Html.TextBox(string.Empty, @Model.ToString("MM/dd/yyyy"), new { @class = "form-control datepicker" })
はあなたのDateTimeエディタビューで 'ViewData'オブジェクトを見て、HtmlAttributesをオーバーライドすることができませんでした'ViewData'ディクショナリの値が渡されていればそれを渡すでしょうか? – Bwolfing
ViewDataを使用していません。 – DeveloperDan
私はあなたが現在ではないことを知っていますが、 '@ Html.EditorFor()'に2番目のパラメータとしてオブジェクトを渡すと、その値はページの 'ViewData'オブジェクトに格納されます。言い換えれば、 'ViewData [" @ class "]'を実行することができます(辞書の正確なキーが何であるかをダブルチェックする必要があるかもしれません)。 {@class = "form-control datepicker"} ' – Bwolfing