从ASP.NET MVC 4中的部分或编辑器模板触发包包含
我正在ASP.NETMVC4之上构建一个框架。我喜欢MVC4中新的捆绑功能,但我遇到了一个问题,我不确定新的捆绑功能是否解决了这个问题 我的布局视图在从ASP.NET MVC 4中的部分或编辑器模板触发包包含,asp.net,.net,asp.net-mvc-4,bundle,asp.net-optimization,Asp.net,.net,Asp.net Mvc 4,Bundle,Asp.net Optimization,我正在ASP.NETMVC4之上构建一个框架。我喜欢MVC4中新的捆绑功能,但我遇到了一个问题,我不确定新的捆绑功能是否解决了这个问题 我的布局视图在之前的页面底部呈现它的脚本包 由于我的项目是一个框架,视图并不知道页面需要的所有捆绑包。我的项目大量使用编辑器模板,可能需要包含一些javascript,但无法在编辑器模板中呈现,因为: 脚本只需要包含一次,编辑器模板可以呈现多次 该脚本可能依赖于其他javascript库,如jQuery,它们还没有包括在内(它们在页面底部呈现) 因此,我想在
之前的页面底部呈现它的脚本包
由于我的项目是一个框架,视图并不知道页面需要的所有捆绑包。我的项目大量使用编辑器模板,可能需要包含一些javascript,但无法在编辑器模板中呈现,因为:
- 脚本只需要包含一次,编辑器模板可以呈现多次
- 该脚本可能依赖于其他javascript库,如jQuery,它们还没有包括在内(它们在页面底部呈现)
@Scripts.TriggerInclusion("~/path/to/bundle/that/this/editor/needs")
这将导致bundle脚本标记只在页面末尾呈现一次
我可以不辞辛劳地将其构建到我的项目的基础设施中,但我希望这种事情已经得到了某种支持。谢谢 这是我们在待办事项列表中跟踪的内容,它是一个相当复杂的功能,因此我们可能不会在几个版本中使用它 我们早期的想法基本上是:
- 允许注册命名资产,即资产。注册(“jquery”)。包括(“~/scripts/jquery.js”)
- 允许在捆绑包中按名称包含资产
- 添加类似于
的内容,这类似于TriggerInclusion,它基本上在页面上注册jquery资产Scripts.reques(“jquery”)
- 类似于
的功能可以在您选择的位置呈现页面上所有已注册的脚本,还可以执行资产重复数据消除等操作Scripts.RenderRegistered()
我们不确定这项功能的优先级有多高,所以如果这是您真正想要的,我在上创建了一个问题,投赞成票。我自己做了。它很容易建造,对我来说效果很好
可能有一些bug,我没有太多地使用它,因为我的大多数项目仍然是MVC3。但是我很少使用它,它就成功了。既然我已经发布了我的codeSure,我们能摆脱那次否决票吗!你甚至可以得到一个很好的、干净的解决方案。很好的解决方案,因为你无法控制顺序或脚本包含,所以你只需要从每个部分请求你需要的所有包。真不敢相信这样的东西不是汉克造的。是的,这似乎是一个严重的疏忽。我只使用了RequireBundle。请问包含一个脚本的语法是什么?还是这样吗?卡带提供了这是一个明确的奖金。