如何将外部文件的内容添加到Razor MVC3布局文件中

时间:2011-05-05 15:53:23

标签: asp.net-mvc

我在_Layout中有以下代码:

@if (ViewBag.PageFormat == "Footer Buttons")
{

}

如果我在viewbag中传递“Footer Buttons”字符串,那么我想将外部文件中的CSS代码直接插入到cshtml文件中。类似于将外部文件的内容插入到{和}之间的cshtml文件中。

有没有办法用MVC3做到这一点?

1 个答案:

答案 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");
}