Asp.net mvc MVC中基于区域的包

Asp.net mvc MVC中基于区域的包,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我想为每个区域绑定一个js文件,我能够做到这一点。但是,问题是参考。 我不想在_Layout.cshtml中引用所有区域js,因为它将加载所有区域js文件 我可以根据区域更改js,但是我们的_布局只会从那里加载一次,这只是ajax调用 在我的例子中,哪一个地方是正确的js区域?这是部分的目的: _Layout.cshtml <head> @RenderSection("head", false) ... </head> 请注意,

我想为每个区域绑定一个js文件,我能够做到这一点。但是,问题是参考。 我不想在_Layout.cshtml中引用所有区域js,因为它将加载所有区域js文件

我可以根据区域更改js,但是我们的_布局只会从那里加载一次,这只是ajax调用


在我的例子中,哪一个地方是正确的js区域?

这是部分的目的:

_Layout.cshtml

   <head>
          @RenderSection("head", false)
     ...
   </head>
请注意,在MVC框架中首先呈现子视图,因此如果此视图中有javascript,则将在布局之前开始执行。因此,始终使用文档加载事件或窗口就绪,如果它依赖于布局中引用的脚本,则自执行代码将失败

或者您可以尝试以下方法:

将您所在的区域存储在ViewModel中的某个位置,我将使用ViewBag作为示例。然后为每个注册包的区域创建一个单独的脚本包。然后你可以做类似的事情

  @Bundle.Scripts.Add("/scripts/" + ViewBag.Area + "/myscripts");

在布局页面中包含js文件时。。。您可以使用case语句并指定您所在区域的in-case语句,并根据布局页面中的区域相应地包含js…不-不要这样做,我会得到答案(这会起作用)但是在视图中使用条件格是不可取的。我不想在子视图中引用它。我只想在一个区域中引用一次。我在_viewstart中尝试过,但没有成功。
  @Bundle.Scripts.Add("/scripts/" + ViewBag.Area + "/myscripts");