我想了解一下關於管理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