2

我将 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 路由更改时的脚本标签?

4

1 回答 1

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";
}
于 2012-10-20T18:20:55.090 回答