我想了解一下关于管理ASP .NET MVC中的脚本的意见。有2个问题,我特别好奇:管理ASP.NET MVC中的视图页面脚本
- 跟踪脚本包括视图的依赖
- 管理和涅槃视图脚本
就像在很多项目我的意见是由几个部分意见和编辑器模板。我喜欢在相同的代码实体中保留与这些视图相关的脚本,例如
SigningKeysForm局部视图应该有它自己的JQuery/JQueryUI脚本。
这意味着任何呈现这个局部视图的视图都应该包含JQuery/JQueryUI脚本文件。
另一个问题是,当一个视图是由几个这样的局部视图组成时,这意味着部分视图中的javascipt将在生成的html中的多个位置。
我目前处理这些问题的方法是利用ASP.Net MVC中自上而下的视图解析。
为了解决第一个问题,我定义了一个HtmlHelper扩展来包含一个脚本例如
<% Html.RequireScript(Scripts.JQuery); %>
这种方式在每个局部视图和视图中明确地指出需要哪些脚本。这个方法的实现是在当前的HttpContext上创建一个HashSet,并在其中添加所需的脚本。
在我的母版页我有另一个的HtmlHelper扩展,检查的HttpContext并使脚本包括标签如:
<%=Html.RenderScriptIncludeTags()%>
这样我可以跟踪的意见要求,只渲染所需脚本包括。
对于视图脚本我采用了类似的方法。我使用自定义的ASP.NET用户控制其代替呈现其内容存储脚本内容到缓冲区上的HttpContext例如:
<mvc:script runat="server">
$(function(){
alert("Hello " + "<%=Model.Name%>");
});
</mvc:script>
在主视图我有一个扩展的HtmlHelper再次
其中minifies(如果需要)的存储脚本和使他们如:
<%=Html.RenderScripts()%>
</body>
我想这样的作品作为一个解决方案,但它需要的脚本,包括和脚本是在母版页的底部。这意味着脚本包含不在头部分。
我想知道是否有更好的方法来管理脚本需求和使用ASP .NET MVC查看页面脚本。
谢谢!我会看看它。 – Atacan
看起来很有趣。 :) –
你会如何与Cassette并行加载你的脚本? – Ryan