等效于 ASP.NET Core MVC 中的“@section”?

Posted

技术标签:

【中文标题】等效于 ASP.NET Core MVC 中的“@section”?【英文标题】:Equivalent of "@section" in ASP.NET Core MVC? 【发布时间】:2016-03-25 14:50:25 【问题描述】:

在默认的_Layout.cshtml 文件中,脚本在“环境”中定义如下:

<environment names="Development">
     <script src="~/lib/jquery/dist/jquery.js"></script>
     <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
     <script src="~/js/site.js" asp-append-version="true"></script>
</environment>
<environment names="Staging,Production">
     <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js"
                    asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
                    asp-fallback-test="window.jQuery">
     </script>
     <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.5/bootstrap.min.js"
                    asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
                    asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal">
     </script>
     <script src="~/js/site.min.js" asp-append-version="true"></script>
</environment>

下面是@RenderSection("scripts", required: false)

我似乎无法在任何单独的 .cshtml 文件中实现一个部分(在本例中为“脚本”),因为看起来他们摆脱了 Core 中的“@section

我想为特定视图添加特定脚本。解决这个问题的新方法是什么?我现在是否将所有内容都转储到 _Layout 中?

【问题讨论】:

【参考方案1】:

我认为你错了。它在 ASP.NET Core 中运行良好。我的 _layout.cshtml 中有这个

@RenderSection("scripts", required: false)

在我的一个观点中,我正在那里添加这样的脚本:

@section Scripts 
    @if (Model.CanEdit)
   
      await Html.RenderPartialAsync("EditorScriptsPartial");
   

【讨论】:

哦,哇,你完全正确——那是我的愚蠢错误。我没有在智能感知中看到“@section”弹出,而是看到了不同的部分功能,这让我很失望。非常感谢你,乔。如果可以的话,我会将此标记为答案。 另外,我还有一个小问题——也许你可以帮忙。在 _Layout 中,我将脚本放在哪个环境(开发、暂存等)中是否重要? 通常在开发中你会添加未缩小的脚本,而在生产中你会缩小脚本和/或捆绑在一起的脚本。所以是的,如果你使用环境标签来包装它们很重要,但是你是否在环境中包装脚本是可选的。 这个大写/小写是必需的吗,我想知道吗? “脚本”、“脚本” 是的,只要该部分在布局中定义,任何部分都可以工作。样式部分没什么特别的

以上是关于等效于 ASP.NET Core MVC 中的“@section”?的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net Core 2 中是不是有等效于“HttpContext.Response.Write”的内容?

EF Core 中的 ASP.NET Core 5 MVC 和 Identity - 基于资源的授权

asp.net core序列化json配置,适用于mvc,webapi

asp.net core序列化json配置,适用于mvc,webapi

ASP.NET Core Web 应用程序系列- 使用ASP.NET Core内置的IoC容器DI进行批量依赖注入(MVC当中应用)

asp.net core 中的 MVC 架构模式