如果文件名为_ViewStart.cshtml, Razor Layout将不起作用

本文关键字:Razor Layout 不起作用 cshtml 文件名 ViewStart 如果 | 更新日期: 2023-09-27 18:05:07

我有一个MVC3 web应用程序,我想开始使用整个Razor视图。

大多数站点都可以正常工作。所以我已经把它的大部分打包成部分视图,并试图添加一个具有相同内容的布局。

阅读Scott Gu的博客后,我添加了一个名为_ViewStart的文件。在我的~/Views目录下的cshtml,这样它将默认应用。

不幸的是,这给了我错误:

The name 'RenderBody' does not exist in the current context

如果文件名为_viewstart.cshtml .

如果它被称为_layoutviewstart.cshtml,它将工作,但我必须在视图中直接引用它。

如果命名为_billyviewstart.cshtml也可以但是我必须直接在视图中引用它

如果文件名为_ViewStart.cshtml, Razor Layout将不起作用

视图开始

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

Layout.cshtml

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

当您在顶部包含@page指令的页面上包含@RenderBody指令时,将引发此错误。通过添加@page,您已经定向ASP。网核认为它是一个页面而不是布局。因此,编译器不期望RenderBody包含在该页上。

要修复此错误,请从布局中删除@page指令