RenderBody() et RenderSection() doit être sur chaque enfant de mise en page?

J'ai trois de mise en page simple,

_Layout.cshtml (c'est la présentation de la base)

@RenderSection("something", required: false)
@RenderBody()

_Main.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section something {
   Hey I'm actually on the _Main layout.
}

Index.cshtml

@{
    Layout = "~/Views/Shared/_Main.cshtml";
}

Quand j'essaie de rendre l'Index de la vue dans une action, j'ai eu cette erreur,

La "RenderBody" la méthode n'a pas été appelé pour la mise en page
"~/Views/Shared/_Main.cshtml".

Mais attendez, _Main.cshtml a un parent de mise en page qui a déjà un RenderBody().
Donc je suis mal, dois-je appeler RenderBody() pour chaque enfant de mise en page?

  • non c'est juste une erreur.
  • Je ne suis pas sûr que vous pouvez imbriquer les mises en page comme ça.
  • Oui, vous pouvez imbriquer des mises en page. Habituellement, vous pouvez avoir différents intérieure de la mise en page des pages ou conditionnelle d'afficher le contenu de votre point de vue.
  • Ah ok, n'avait pas essayé moi-même.
  • Parce que vous êtes à l'aide de _Main.cshtml que la mise en page, vous devez ajouter RenderBody()
InformationsquelleAutor ocanal | 2013-08-19