1. ホーム
  2. html

[解決済み] ASP.NET MVCのEditorFor()のHtml属性について

2022-06-11 01:56:22

質問

にhtmlの属性を渡すことができないのはなぜですか? EditorFor() に渡すことができないのでしょうか?

<%= Html.EditorFor(model => model.Control.PeriodType, 
    new { disabled = "disabled", readonly = "readonly" }) %>

メタデータは使いたくない

更新 : 解決策は、ビューからこれを呼び出すことでした。

 <%=Html.EditorFor( model => model.Control.PeriodEndDate, new {Modifiable=model.Control.PeriodEndDateModifiable})%>

とし ViewData["Modifiable"] を、カスタム EditorTemplates/String.ascx の中で、入力に readonly and/or disabled 属性を追加するかどうかを決定するビューロジックとして使用しています。 に渡された匿名オブジェクトは EditorFor() と呼ばれるパラメータです。 additionalViewData で、そのプロパティがエディタテンプレートに渡されます。 ViewData コレクションに渡されます。

どのように解決するのですか?

EditorFor はメタデータで動作するので、htmlの属性を追加したい場合は は常に . もう一つの方法は、単純にカスタムテンプレートを書いて TextBoxFor :

<%= Html.TextBoxFor(model => model.Control.PeriodType, 
    new { disabled = "disabled", @readonly = "readonly" }) %>