Search code examples
c#asp.net-mvc-3razor

Razor Layout doesn't work if file is called _ViewStart.cshtml


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 reference it directly in the view.


Solution

  • View start

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

    Layout.cshtml

    <!DOCTYPE html>
    <html>
    <body>
         @RenderBody()
    </body>
    </html>