我想为每个区域捆绑一个js文件,我能够做到。但是,问题是要参考。 我不想在_Layout.cshtml中引用所有区域js,因为它将加载所有区域的js文件。
我可以根据区域更改js但我们的_layout只会从那里加载一次只有ajax调用。
在我的案例中哪个地方明智地引用了js区域?
答案 0 :(得分:1)
这是以下部分:
_Layout.cshtml
<head>
@RenderSection("head", false)
...
</head>
false参数表示不需要,在这种情况下就是你想要的。
然后在您的子视图中
@section head{
@Bundle.Scripts.Add("my scripts location");
}
请注意,子项首先在MVC框架中呈现,因此如果在此视图中有javascript,它将在布局之前开始执行。所以总是使用Document Load事件或Window Ready,如果依赖于Layout中引用的脚本,自执行代码将失败
或者您可以尝试这样的事情:
将您所在的区域存储在ViewModel中的某个位置,我将仅使用ViewBag作为示例。然后在注册捆绑包时为每个区域创建单独的脚本包。然后你可以做类似
的事情 @Bundle.Scripts.Add("/scripts/" + ViewBag.Area + "/myscripts");