我在_Layout中有以下代码:
@if (ViewBag.PageFormat == "Footer Buttons")
{
}
如果我在viewbag中传递“Footer Buttons”字符串,那么我想将外部文件中的CSS代码直接插入到cshtml文件中。类似于将外部文件的内容插入到{和}之间的cshtml文件中。
有没有办法用MVC3做到这一点?
答案 0 :(得分: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");
}