9
votes

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.

1
Site.Master? Are you just trying to convert an existing site? There's probably configuration changes required that you don't have.Tridus
hello, we use view start to defined default layout, defined default layout will be stay in shared folder. of course it must have @RenderBody().Nuri YILMAZ

1 Answers

13
votes

View start

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

Layout.cshtml

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