私たちは、RenderPartialを使用せず、代わりにEditorForとDisplayForを100%のケースで使用することを惜しまないようにしています。しかし、これまでに作業することができなかったシナリオが1つあります。部分ビューにViewModel全体が必要な場合、つまりHtml.DisplayFor(m => m, "MyTemplateThatNeedsTheEntireViewModel")
になる必要がある場合です。 Html.DisplayFor(m => m.Prop, "MyTemplateThatOnlyNeedsTheOneProperty")
の場合はうまく動作しますが、ViewModel全体を渡すことはできません。ViewModel全体をDisplayTemplateに渡しますか?
DisplayFor
とEditorFor
の両方で動作する方法がありますか?
私が今見ていることは、何もない(またはおそらく空白)がマークアップにレンダリングされることです。しかし、コンパイラとReSharperは私の構文がうまくいくと思っているようです。 RenderPartialを呼び出すコードを変更すると完全に動作しますが、これは私が避けようとしているものです。
私はこれらの3行を試してみます。れるrenderPartialは(最終的なマークアップは、空の文字列または空白である)EditorForsが動作しない、完璧に動作します:
<% Html.EditorFor(m => m, "RetailPriceRequests/PriceRequest/PriceRequestLoadGrid"); %>
<%= Html.EditorFor(m => m, "RetailPriceRequests/PriceRequest/PriceRequestLoadGrid") %>
<% Html.RenderPartial("~/Views/Shared/EditorTemplates/RetailPriceRequests/PriceRequest/PriceRequestLoadGrid.ascx", Model); %>
DisplayTemplatesのそれぞれのタイプは何ですか? – hunter
非常にカスタムのViewModelsです。例えば、我々は 'BusinessDetailsViewModel'を' BusinessSummary'(常時画面情報)と 'BusinessDetails'(多くのタブの内容)に渡し、' BusienssDetailsViewModel'のさまざまなプロパティを渡します追加のタブで表示/エディタテンプレートに追加できます。 – Jaxidian