この質問を投稿する前に、EditorForModel
パラメーターの使用についてグーグル検索しました。
Html.EditorForModel() を使用しない理由とこのブログを読みました。
私のニーズに関連する記事は見つかりませんでした。
EditorForModel
パラメータ付きの呼び出しの例を教えてください。
この質問を投稿する前に、EditorForModel
パラメーターの使用についてグーグル検索しました。
Html.EditorForModel() を使用しない理由とこのブログを読みました。
私のニーズに関連する記事は見つかりませんでした。
EditorForModel
パラメータ付きの呼び出しの例を教えてください。
このヘルパーには6 つのオーバーロードがあります。
@Html.EditorForModel()
ビューモデルの正確なタイプ名である~/Views/Shared/EditorTemplates/TypeName.cshtml
テンプレートをレンダリングします。TypeName
ビュー モデルがコレクション (つまりIEnumerable<TypeName>
、、、 ...) のIList<TypeName>
場合TypeName[]
、ASP.NET MVC は、コレクションの各要素に対応するエディター テンプレートを自動的にレンダリングします。そのために、ビューにループを記述する必要はありません。フレームワークによって処理されます。
@Html.EditorForModel("templatename")
~/Views/Shared/EditorTemplates/templatename.cshtml
慣例に頼らずにレンダリングする
@Html.EditorForModel(new { Foo = "bar" })
デフォルトのエディター テンプレートをレンダリングしますが、追加のビュー データを渡しますViewData["foo"]
。ViewBag.Foo
@Html.EditorForModel("templatename", new { Foo = "bar" })
規則に依存する代わりにレンダリング~/Views/Shared/EditorTemplates/templatename.cshtml
し、追加のビュー データをそれに渡しますViewData["foo"]
。ViewBag.Foo
@Html.EditorForModel("templatename", "fieldprefix")
規則に依存する代わりにレンダリング~/Views/Shared/EditorTemplates/templatename.cshtml
し、このテンプレート内のナビゲーション コンテキストを変更します。つまり、たとえば、@Html.TextBoxFor(x => x.FooBar)
このテンプレート内で呼び出しがあった場合、name="fieldprefix.FooBar"
代わりにname="FooBar"
@Html.EditorForModel("templatename", "fieldprefix", new { Foo = "bar" })
規則に依存する代わりにレンダリング~/Views/Shared/EditorTemplates/templatename.cshtml
し、このテンプレート内のナビゲーション コンテキストを変更します。つまり、たとえば、@Html.TextBoxFor(x => x.FooBar)
このテンプレート内で呼び出しがあった場合、name="fieldprefix.FooBar"
代わりにname="FooBar"
. ViewData["foo"]
また、内部でまたはで使用できる追加のビューデータを渡しますViewBag.Foo
注意: テンプレート システムは最初~/Views/XXX/EditorTemplates
に XXX がこのビューを提供したコントローラーの名前であるテンプレートを探し、見つからない場合は を調べます~/Views/Shared/EditorTemplates
。これにより、テンプレートをより細かく調整できるようになります。コントローラーごとにオーバーライドできる共有フォルダーにデフォルトのテンプレートを含めることができます。