等效于 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当中应用)