我正在使用requireJS作为我的混合应用程序。现在我需要更改位于我的布局页面中的脚本标记以及url上的条件。脚本标记看起来像这样
<script data-main="@Url.Content("~/Scripts/main")" src="@Url.Content("~/Scripts/Libs/Requirejs/require.min.js")" type="text/javascript"></script>
现在,当页面加载 /Home/Login
时,上面的脚本标记应更改为
<script data-main="@Url.Content("~/Scripts/login")" src="@Url.Content("~/Scripts/Libs/Requirejs/require.min.js")" type="text/javascript"></script>
当我加载页面时 /Mail/Index
上面的脚本标记应该更改为
<script data-main="@Url.Content("~/Scripts/mail")" src="@Url.Content("~/Scripts/Libs/Requirejs/require.min.js")" type="text/javascript"></script>
现在请注意,所有三个页面都使用相同的**_Layout.cshtml**
页面。以上脚本标记仅位于**_Layout.cshtml**
页面。现在如何跟踪此脚本以更改Url路由更改时的脚本标记,如上所述?
答案 0 :(得分:2)
我只是为此使用一节。在布局页面中:
@RenderSection("RequireScripts")
并将脚本放在每个页面中:
@section RequireScripts {
<script data-main="@Url.Content("~/Scripts/main")" src="@Url.Content("~/Scripts/Libs/Requirejs/require.min.js")" type="text/javascript"></script>
}
如果你想要避免重写整个事情(只需要相对路径),那么我想你可以使用动态Page
变量:
@if (Page.RequireScript != null)
{
<script src='~/Scripts/@Page.RequireScript'></script>
}
然后脚本块将输出到定义RequireScript
的页面。
@{
Page.RequireScript = "Libs/Requirejs/require.min.js";
}