c# - 如何将@RenderBody() 分成两部分

标签 c# html asp.net-mvc asp.net-core

我正在使用 ASP.NET Core 2.2。我遇到的问题是我不知道在哪里使用 @RenderBody() 在我的 _Layout 页面中。这是我想做的事情的代表: enter image description here

绿色部分应该来自_Layout,白色部分应该来自HomePage.cshtml。我的 HomePage 由两部分组成,一个 slider 和它下面的一个内容列表。这是我尝试过的,但它不符合我的需要,因为我不能在其中放置 slider 。

这是_Layout

<html>
   <body>
       <main>
       <header></header>
       <div class="left-col">
       <div class="content">@RenderBody()</div>
       <div class="right-col">
       <footer></footer>
    </main>
   </body>
</html>

最佳答案

您可以在布局中定义一个部分来呈现所需的内容

HomePage.cshtml

@{
    ViewBag.Title = "Home Page";
}

@section Slider {

   <div>My HomePage slider</div>

}

<p>My HomePage content</p>

布局会检查该部分是否存在,如果存在则渲染它

_Layout.cshtml

<html>
   <body>
       <main>
       <header></header>
    @if (IsSectionDefined("Slider")) {
       <div class="homepage-slider">
         @RenderSection("Slider", required: false)
       </div>
    }
       <div class="left-col">
       <div class="content">@RenderBody()</div>
       <div class="right-col">
       <footer></footer>
    </main>
   </body>
</html>

显然,您必须指定将部分放置在所需位置所需的样式。

引用 Layout in ASP.NET Core: Sections

关于c# - 如何将@RenderBody() 分成两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56715743/

相关文章:

c# - 我如何在 C# 中解析 JSON 字符串获取错误无法反序列化当前 JSON 对象(例如 {“name” :“value” })

javascript - 如何使用 setWebViewClient 在 android webview 中的 html 页面上正确打开 google play 链接?

jquery点击改变显示

java - 使用 Jsoup 从 HTML 获取多个表

c# - 使用 Nest Elastic 根据术语中的单词数进行搜索

c# - 在 Windows Phone 8.1 应用商店应用程序中设置背景音频中的媒体文件标题和专辑

c# - 在 ef 中将对象列表添加到上下文

c# - Entity Framework - 如何使用 lambda 通过一个查询选择每个 IDNumber 的第一行

c# - 如何使用 FluentValidation 验证我的日期时间?字段有好的格式吗?

c# - MVC 中使用响应重定向