Javascript Scripts.Render()如果不存在

Javascript Scripts.Render()如果不存在,javascript,asp.net,asp.net-mvc-4,html-helper,bundling-and-minification,Javascript,Asp.net,Asp.net Mvc 4,Html Helper,Bundling And Minification,我希望仅当父视图中尚未声明此类调用时,才呈现以下调用 @Scripts.Render("~/Scripts/jQuery") 最好的方法是什么?这里有一种方法: <script> if (!window.jQuery) { document.write('<script src="@BundleTable.Bundles.ResolveBundleUrl("~/Scripts/jQuery")">\x3C/script>'); }

我希望仅当父视图中尚未声明此类调用时,才呈现以下调用

@Scripts.Render("~/Scripts/jQuery")
最好的方法是什么?

这里有一种方法:

<script>
    if (!window.jQuery) {
        document.write('<script src="@BundleTable.Bundles.ResolveBundleUrl("~/Scripts/jQuery")">\x3C/script>');
    }
</script>

如果(!window.jQuery){
document.write(“\x3C/script>”);
}

这与包含来自CDN的jQuery,然后在CDN交付失败时具有本地引用回退时使用的逻辑基本相同。

通常,您应该设计包,使其不存在重叠,我建议主页和子视图各有一个捆绑包。另外,如果您正在加载与jquery相关的库,那么在大多数情况下,这些库应该添加到页面的末尾,因此母版页/布局是最好的选择。布局页面已经有了这个捆绑包,但它是一个区域本地布局。它需要检测父布局是否已经定义了这些内容。我需要在运行时检查。简言之,是的,我知道有一些变通办法,但我希望它能像我描述的那样准确地运行。有没有一种开箱即用的方法?如果有必要,我可以运行自定义代码,但更喜欢使用框架。是的,这似乎是一种可能的解决方案。非常感谢。