I have an MVC3 web app to which I want to start using whole Razor views.
Most of the site is working fine with a Site.Master so I've packaged up most of it into partial views and am trying to add a layout with the same content.
After reading Scott Gu's blog I've added a file called _ViewStart.cshtml in my ~/Views
directory so that it'll be applied by default.
Unfortunately this gives me the error:
The name 'RenderBody' does not exist in the current context
If the file is called _viewstart.cshtml
.
If it is called _layoutviewstart.cshtml
it will work but I have to reference it directly in the view.
If it's called _billyviewstart.cshtml
is works but again I have to referenc开发者_Go百科e it directly in the view.
View start
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Layout.cshtml
<!DOCTYPE html>
<html>
<body>
@RenderBody()
</body>
</html>
This error will be raised when you include @RenderBody
directive on a page with @page
directive at the top. By adding @page
you have directed ASP.Net Core that it is a page and not layout. Therefore, the compiler does not expect RenderBody
to be included on the page.
To fix this error, remove @page
directive from layout.
精彩评论