gpt4 book ai didi

asp.net-mvc - 在 ASP.NET MVC 中,使用@RenderSection(相对于@RenderPage)有什么好处?

转载 作者:行者123 更新时间:2023-12-01 01:27:19 25 4
gpt4 key购买 nike

如果我做错了什么,我想开悟。我打赌我是。

如果我的 View 页面中有以下代码:

@{
ViewBag.Title = "About Us";
}

<h2>About</h2>
<p>
sample content.
</p>
@section header
{
<div id="header">
Chapter 3a: Creating a Consistent Look
</div>
}

...我还应该在我的布局页面中使用 ff 来呈现该部分(如果可用)以防止在运行时出现异常:
@if (IsSectionDefined("header"))
{
@RenderSection("header")
}

但是,如果我没有在渲染部分之前检查该部分的最后 4 行(例如,我将它们全部注释),编译器将不会检查我在 View 页面中是否定义了一个部分,并允许我构建和运行应用程序。在运行时,只有这样我才会在运行页面时收到此错误:

The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_Layout2.cshtml": "header".



那么我的问题是ff:
  • 我们怎样才能防止这种情况发生?是否有任何设置强制编译器检查丢失的 @RenderSection代码?
  • @section 的用法不好吗?由于我们需要手动搜索 @section关键字贯穿整个应用程序?
  • 在这种情况下,使用 @RenderSection 有什么好处?然后与 @RenderPage 相对?
  • 我们也可以制作@section吗?有条件的?
  • 最佳答案

    我从来没有想过这是一个问题。这个概念与 aspx 语法中的占位符相同,因此如果您的主页中有 2 个占位符,则应该在使用该母版页的每个页面/ View 中有 2 个内容。

    Phil Haack 有一篇关于该论点的博客文章,它没有直接解决您的担忧,但它肯定是值得考虑的有趣的事情。

    http://haacked.com/archive/2011/03/05/defining-default-content-for-a-razor-layout-section.aspx

    关于asp.net-mvc - 在 ASP.NET MVC 中,使用@RenderSection(相对于@RenderPage)有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6939704/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com