Je travaille sur un MVC3/page Razor, et dans mon _layout jeMVC3 - RenderPartial intérieur RenderSection ne fonctionne pas
@RenderSection("relatedBooksContainer", false)
Dans une autre page j'utiliser cette section avec:
@section relatedBooksContainer
{
@{ Html.RenderPartial("~/Views/Shared/Bookshelf.cshtml", Model.Books);}
}
Cela ne fonctionne pas. D'après ce que j'ai lu, RenderSection ne sera jamais qu'un seul niveau de profondeur - il n'a pas de concept de Html.RenderPartial dans la section correspondante et retournera simplement une zone vide. La solution de contournement que j'ai lue à http://forums.asp.net/t/1590688.aspx/2/10 est d'utiliser RenderPage et de valider le code HTML renvoyé à une chaîne, puis outout cette chaîne dans la section de rendu ... qui fonctionne! C'est, jusqu'à ce que je passe un modèle à la page partielle, il renvoie une erreur en disant:
L'élément de modèle passé dans le dictionnaire est de type « TheBookshelf.ViewModels.BookshelfViewModel », mais ce dictionnaire nécessite un modèle élément de type 'System.Collections.Generic.List`1 [countsshelf.EntityModel.Book]'.
Quelqu'un at-il une idée de ce qui pourrait se passer? Existe-t-il d'autres moyens d'y parvenir?
Donc "@section relatedBooksContainer" est dans une partie? –
Il semble que vous ayez besoin d'utiliser des dispositions imbriquées ... –
"So" @section relatedBooksContainer "est dans une partie?" ---- Cette section du code est dans sa propre page autonome, mais le "~/Views/Shared/Bookshelf.cshtml" est une page partielle, que la page normale appelle. Cela semble casser dans MVC.De plus, je ne peux pas le mettre dans le fichier _Layout car chaque page qui implémente le "@section relatedBooksContainer" passe dans son propre modèle, donc avoir un appel à la page partielle sans aucun modèle ne fonctionnera pas non plus. – boolean