Wir tun unser Bestes, um nicht RenderPartial zu verwenden, sondern stattdessen EditorFor und DisplayFor in 100% der Fälle zu verwenden. Es gibt jedoch ein Szenario, das wir bisher nicht lösen konnten: Wenn die Teilansicht das gesamte ViewModel benötigt, oder mit anderen Worten, wenn es Html.DisplayFor(m => m, "MyTemplateThatNeedsTheEntireViewModel")
sein muss. Es funktioniert gut, wenn es Html.DisplayFor(m => m.Prop, "MyTemplateThatOnlyNeedsTheOneProperty")
ist, aber wir können nicht das gesamte Ansichtsmodell in geben.Ein komplettes ViewModel in ein DisplayTemplate übergeben?
Gibt es eine Möglichkeit, dies zu erreichen, die sowohl mit DisplayFor
und EditorFor
arbeiten?
Was ich jetzt sehe ist, dass entweder nichts (oder vielleicht Leerzeichen) zu meinem Markup gerendert wird. Sowohl der Compiler als auch ReSharper scheinen jedoch zu glauben, dass meine Syntax gut ist. Das Ändern meines Codes zum Aufrufen von RenderPartial funktioniert einwandfrei, aber das versuche ich zu vermeiden.
Ich versuche diese drei Zeilen. Die RenderPartial funktioniert perfekt, die EditorFors nicht funktionieren (eventuell Markup ist eine leere Zeichenfolge oder Leerzeichen):
<% Html.EditorFor(m => m, "RetailPriceRequests/PriceRequest/PriceRequestLoadGrid"); %>
<%= Html.EditorFor(m => m, "RetailPriceRequests/PriceRequest/PriceRequestLoadGrid") %>
<% Html.RenderPartial("~/Views/Shared/EditorTemplates/RetailPriceRequests/PriceRequest/PriceRequestLoadGrid.ascx", Model); %>
was ist die Art von jedem des DisplayTemplates? – hunter
Sie sind sehr benutzerdefinierte ViewModels. Zum Beispiel haben wir ein 'BusinessDetailsViewModel', wo wir es an eine' BusinessSummary' (immer-auf-Bildschirm-Info) und 'BusinessDetails' (Inhalt einer von vielen Registerkarten) übergeben und dann verschiedene Eigenschaften aus dem' BusienssDetailsViewModel' übergeben werden in Anzeige/Editor-Vorlagen in zusätzlichen Registerkarten. – Jaxidian