【发布时间】:2017-12-10 05:29:06
【问题描述】:
我尝试在使用 Razor 脚本构建的网站中使用 @RenderSection。与 .cshtml 文件一起使用时出现错误。它也没有出现在 VS 的 IntelliSense 中。
现在,我刚刚意识到,如果我从 .cshtml 文件中删除 @page,那么错误就会消失,而且 IntelliSense 也会为我提供 @RenderSection
我的问题是:为什么?
它在 Microsoft 文档/教程中说,使用新的 ASP.NET Core Razor 脚本:
“@page 必须是页面上的第一个 Razor 指令。@page 影响其他 Razor 构造的行为。”
所以我有点困惑。使用 ASP.NET Core 中的新 Razor 页面在 .cshtml 文件中包含 html(部分视图 - 如主菜单等)的正确方法是什么?
谢谢。
【问题讨论】:
-
没有
@page会出现什么错误?是编译时错误还是运行时错误? -
错误与“@page”有关。没有页面就没有错误。我使用“@page”得到的错误是“当前上下文中不存在名称‘RenderSection’”。但是因为在微软的教程中它说使用'@page',所以我想知道在使用'@page'时包含html块的正确方法是什么。
-
你在布局页面上使用
@RenderSection吗? -
没有。在 _Layout.cshtml 上没有问题。问题出在其他 .cshtml 页面上。问题是,内部页面的结构与主页略有不同,所以我有不同的标题。我试图做的是对菜单(以及其他重复自己的代码块)有一个部分视图,然后调用它们。在“旧”的 Razor 页面中,您可以将它们放在共享文件夹中并与 RenderSection 一起使用。现在换了新的就不行了