2011-05-05 40 views

回答

4

如果您的意思是從外部文件加載CSS作爲內嵌CSS代碼,您應該在您的HtmlHelper上創建一個擴展方法。

public static class CssHelper 
{ 
    public static MvcHtmlString LoadCss(this HtmlHelper html, string file) 
    { 
     string css = System.IO.File.ReadAllText(html.ViewContext.HttpContext.Server.MapPath(file)); 
     TagBuilder styleTag = new TagBuilder("style"); 
     styleTag.Attributes["type"] = "text/css"; 
     styleTag.InnerHtml = css; 

     return MvcHtmlString.Create(styleTag.ToString()); 
    } 
} 

,你可以在你的代碼中調用這樣的:

@if (ViewBag.PageFormat == "Footer Buttons") 
{ 
    @Html.LoadCss("~/Content/mycss.css"); 
} 
+0

感謝您的詳細答覆。其實我已經有我的外部文件中的CSS標籤。我可以通過將System.IO.File.ReadAllText(html.ViewContext.HttpContext.Server.MapPath(file);直接放入我的剃鬚刀文件中來簡化這一操作嗎? – Beverly 2011-05-05 16:12:12

+0

您可以,但這樣做的設計很糟糕。這種方式將增加代碼的重用,並從你的視圖中分離出複雜的邏輯,以堅持MVC架構 – 2011-05-05 16:17:50

+0

謝謝,我會根據你的建議提出一個簡短的問題,你能解釋一下你說的「你應該創建一個擴展方法在你的HtmlHelper上「,你能解釋我的HtmlHelper文件的位置以及我應該如何調用這個文件:謝謝Bev – Beverly 2011-05-05 16:35:32

相關問題