Nous faisons de notre mieux pour ne pas utiliser RenderPartial mais plutôt utiliser EditorFor et DisplayFor dans 100% des cas. Cependant, il y a un scénario que nous n'avons pas réussi à faire fonctionner jusqu'à présent: Lorsque la vue partielle a besoin de l'ensemble de ViewModel, ou en d'autres termes, quand il doit être Html.DisplayFor(m => m, "MyTemplateThatNeedsTheEntireViewModel")
. Il fonctionne très bien si elle est Html.DisplayFor(m => m.Prop, "MyTemplateThatOnlyNeedsTheOneProperty")
mais nous ne pouvons pas passer tout le ViewModel dans.Passer un ViewModel entier dans un DisplayTemplate?
Y at-il un moyen d'atteindre ce qui fonctionnera aussi bien avec DisplayFor
et EditorFor
?
Ce que je vois maintenant est que rien (ou peut-être des espaces) n'est rendu à mon balisage. Cependant, le compilateur et ReSharper semblent penser que ma syntaxe est parfaite. Changer mon code pour appeler RenderPartial fonctionne parfaitement, mais c'est ce que j'essaie d'éviter.
J'essaye ces trois lignes. Le RenderPartial fonctionne parfaitement, les EditorFors ne fonctionnent pas (balisage final est une chaîne vide ou des espaces):
<% Html.EditorFor(m => m, "RetailPriceRequests/PriceRequest/PriceRequestLoadGrid"); %>
<%= Html.EditorFor(m => m, "RetailPriceRequests/PriceRequest/PriceRequestLoadGrid") %>
<% Html.RenderPartial("~/Views/Shared/EditorTemplates/RetailPriceRequests/PriceRequest/PriceRequestLoadGrid.ascx", Model); %>
quel est le type de chacun des DisplayTemplates? – hunter
Ils sont très personnalisés ViewModels. Par exemple, nous avons un 'BusinessDetailsViewModel' où nous passons à un' BusinessSummary' (information toujours à l'écran) et 'BusinessDetails' (contenu de l'un des nombreux onglets), puis différentes propriétés de' BusienssDetailsViewModel' sont passées dans des modèles d'affichage/éditeur dans des onglets supplémentaires. – Jaxidian