首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@RenderSection at Razor pages

@RenderSection at Razor pages
EN

Stack Overflow用户
提问于 2017-12-10 13:29:07
回答 1查看 4.6K关注 0票数 0

我尝试在我的网站中使用@RenderSection,它是用Razor脚本构建的。在.cshtml文件中使用它时出现错误。它也没有出现在VS的IntelliSense中。

现在,我刚刚意识到,如果从.cshtml文件中删除@page,错误就会消失,而且IntelliSense还会为我提供@RenderSection.

我的问题是:为什么?

它在微软文档/教程中说,使用新的ASP.NET核心剃刀脚本:

"@page必须是页面上的第一个Razor指令。@ page会影响其他Razor构造的行为。“

所以我有点困惑。包含html的正确方式是什么(局部视图-如主菜单等)在ASP.NET核心中包含新剃刀页面的.cshtml文件中?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-12-10 23:33:17

我已经解决了这个问题,并发现当您在子页面中使用@RenderSection时,它应该位于其父页面的任何部分(即_layout.cshtml)中。

这里你的_layout.cshtml应该是这样的,

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head>
    <title>@ViewBag.Title</title>
  </head>
<body>
  @RenderSection("MenuContent", false) 
  @RenderBody()
</body>
</html>

你的子页面应该是这样的,

代码语言:javascript
复制
@{
  Layout = "~/Views/Shared/_Layout.cshtml";
}
@section MenuContent {
  @RenderSection("MenuContent", false)
}

而嵌套的子页应该是这样的,

代码语言:javascript
复制
@section MenuContent
{
    <!-- content -->
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47736189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档