最近,我正在構建一個嚴重依賴於javascript/jquery的項目。當部分視圖呈現時,他們需要應用一些JavaScript或CSS樣式。你對管理這些文件的有效方式有任何想法嗎?在MVC中管理CSS,Javascript及其命名約定3
1
A
回答
1
我發現了一個需要在我自己的項目要做到這一點,因爲我希望能夠有一個單獨的JavaScript \每個視圖的CSS文件。
我最終什麼事做是創建一個控制器聚集在服務器上爲我的文件,然後只發送一個CSS \ JS文件瀏覽器。答案可能比你要求的要複雜得多,所以我會推薦第一部分。
你可以讓你可以在每個頁面的頂部調用JS文件在TempData的字典請求添加到列表的擴展方法。然後您從Layout中調用一個單獨的方法來渲染任何其他鏈接。
這工作,因爲到TempData保持公正的要求,佈局的觀點是呈現過去(畢竟意見和諧音運行)。
我這裏有一類的完整的例子:http://pastebin.com/EUC2fAca但我還形成鏈接到我的信息彙集,所以你需要修改。要點如下:
public static string JSKey = "pageJSList";
private static void AddToDictionary(HtmlHelper helper, string[] files, string key)
{
if (files == null || files.Length == 0)
return;
TempDataDictionary dict = helper.ViewContext.TempData;
if (!dict.ContainsKey(key))
dict.Add(key, new List<string>());
(dict[key] as List<string>).AddRange(files);
}
private static void InsertToDictionary(HtmlHelper helper, string[] files, string key)
{
if (files == null || files.Length == 0)
return;
TempDataDictionary dict = helper.ViewContext.TempData;
if (!dict.ContainsKey(key))
dict.Add(key, new List<string>());
(dict[key] as List<string>).InsertRange(0, files);
}
public static void AddJS(this HtmlHelper helper, params string[] files)
{
AddToDictionary(helper, files, JSKey);
}
public static void AddJSToTop(this HtmlHelper helper, params string[] files)
{
InsertToDictionary(helper, files, JSKey);
}
public static MvcHtmlString GetJsTagHtml(HtmlHelper helper)
{
var files = helper.ViewContext.TempData[JSKey] as List<string>;
StringBuilder tags = new StringBuilder();
string jsTemplate = "<script type=\"text/javascript\" src=\"/Scripts/{0}\"></script>";
foreach (string file in files)
{
tags.AppendLine(String.Format(jsTemplate, file));
}
return MvcHtmlString.Create(tags.ToString());
}
您將要插入的方法來計算,因爲,它運行最後在佈局上運行它,所以你要插入的jQuery庫或其它依賴,應該是先上列表。
您的GetJS方法應該可能返回一個MvcHtmlString,其中包含您需要的所有標記。
希望有所幫助,並沒有太長篇大論=)的CSS文件和JavaScript文件,幾乎任何其他文件
1
管理取決於你分類收藏,或在其他方面,你的分類。我認爲更好的問題是,我應該遵循哪些準則,以使我的項目變得更加成功。例如,無論您如何管理和分類JavaScript文件,都應儘量不要在頁面中放置太多''em',因爲每個'em'都會向服務器發出單獨的HTTP請求。或者,儘可能使命名儘可能一致,以便將來您不會對代碼感到困惑。對於CSS和JavaScript,我建議LDSW。
相關問題
- 1. cakephp 3表命名約定
- 2. css菜單命名約定
- 3. HTML/CSS命名約定
- 4. ASP .NET MVC 3是否存在任何命名約定?
- 5. JavaScript RegExp:R命名約定
- 6. Javascript模擬命名約定
- 7. Javascript命名空間約定
- 8. 如何在使用CSS,JS和PHP時處理命名約定?
- 9. .NET商店中的JavaScript命名約定
- 10. asp.net MVC DisplayTemplates和EditorTemplate命名約定
- 11. ASP.NET MVC路由的命名約定
- 12. JSON動作的MVC命名約定
- 13. Java Spring MVC文件夾/命名約定
- 14. 管理大數的JavaScript/CSS(鋼軌3)
- 15. 更改命名約定圖片管道
- 16. 命名約定
- 17. 命名約定
- 18. css命名約定討論(jqueryui)
- 19. Rails 3管理命名空間
- 20. 「資源字典(WPF)」命名約定和管理建議
- 21. 其餘API資源命名約定
- 22. JavaScript函數參數命名約定
- 23. 使用nodejs時的JavaScript命名約定
- 24. TSQL命名約定〜這個命名約定叫什麼名字?
- 25. 在JavaScript中定義屬性和命名約定
- 26. 什麼時候不在HTML/css/javascript的命名約定中使用連字符?
- 27. ReactJs中的命名約定
- 28. MVC5中的命名約定
- 29. c中的命名約定#
- 30. 在C#命名約定
這種方法非常好,整齊。我以前沒有想到這一點。非常感謝你! – Seen