【发布时间】:2021-02-21 11:33:27
【问题描述】:
假设从Controller/Model 收到的动态脚本有以下@section 代码:(dotnet core v3)
string scriptHtml = ViewData["scriptData"];
@section Scripts {
@if(! string.IsNullOrEmpty(scriptHtml)){
<script type='text/javascript'>
@Html.Raw(scriptHtml)
</script>
<script type='text/javascript' src='~/js/appcore/site.reuse.js'></script>
}
}
我想在 _Layout.cshtml 中使用这个,换句话说:我希望能够在_Layout.cshtml 中包含一个脚本部分,这将在包含它的所有页面中保持一致。
所以基本上,_Layout.cshtml 应该如下所示(仅显示 Javascript 部分):
@section Scripts {
@if(! string.IsNullOrEmpty(scriptHtml)){
<script type='text/javascript'>
@Html.Raw(scriptHtml)
</script>
<script type='text/javascript' src='~/js/appcore/site.reuse.js'></script>
}
}
<footer class="border-top footer text-muted">
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
@RenderSection("Scripts", required: false) <!-- not rendered because it is not in the parent 'ie. Index.cshtml' page....
当这个@section不在_Layout.cshtml中但移动到调用_Layout.cshtml的父剃须刀页面(例如Index.cshtml)时,它将被正确包含。然而,这意味着我必须为每个剃须刀页面 @section 这个脚本。
我可以做些什么来包含一个“动态”Javascript 脚本并使其可在所有使用 _Layout.cshtml 的页面中重复使用?
【问题讨论】:
标签: razor .net-core razor-pages