如果文件名为_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
也可以但是我必须直接在视图中引用它
视图开始
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Layout.cshtml
<!DOCTYPE html>
<html>
<body>
@RenderBody()
</body>
</html>
当您在顶部包含@page
指令的页面上包含@RenderBody
指令时,将引发此错误。通过添加@page
,您已经定向ASP。网核认为它是一个页面而不是布局。因此,编译器不期望RenderBody
包含在该页上。
要修复此错误,请从布局中删除@page
指令