1

在部分视图中,我加载了一个这样的 javascript 文件:

<script src="@Url.Content("~/Scripts/Testing.js")" type="text/javascript"></script>

在 中Testing.js,定义了一些函数 就可以了,文件中定义的函数就可以使用了。

现在我在我的应用程序中执行一个操作,我的控制器返回另一个(我不加载任何 js 文件)部分视图。中定义的函数Testing.js在此局部视图中仍然可用。

有没有办法“删除”第一个视图中加载的功能?

谢谢,

更新 1

我在局部视图中尝试过,但错误: 无法直接请求文件“~/Views/xxxx.cshtml”,因为它调用了“RenderSection”方法。

@section MyScript {
    <script src="@Url.Content("~/Scripts/Testing.js")" type="text/javascript"></script>
}
@RenderSection("MyScript", false)
4

1 回答 1

6

您应该避免在部分中引用任何脚本。您可以在布局中定义一个部分,例如在关闭之前</body>允许视图包含一些自定义脚本:

    <script type="text/javascript" src="@Url.Content("~/scripts/some_common_script_that_will_be_used_by_all_views_such_as_jquery_for_example")"></script>
    @RenderSection("scripts", false)
</body>
</html>

然后在视图中(不是在局部视图中)覆盖此部分以包含此视图可能需要的任何脚本:

@section scripts {
    <script src="@Url.Content("~/Scripts/Testing.js")" type="text/javascript"></script>
}
于 2012-07-26T09:09:05.513 回答