代码之家  ›  专栏  ›  技术社区  ›  Morten Mertner

如何使用ASP.NET MVC返回动态CSS?

  •  16
  • Morten Mertner  · 技术社区  · 14 年前

    我需要一个解决方案,让我完成以下工作:

    • 使用工具组合和压缩(缩小)CSS

    我正在考虑为什么ASP.NETMVC中没有CssResult,以及是否有它不存在的原因。创建自定义ActionResult不是最好的方法吗?有没有其他我忽略的方法来做我需要的事情?

    在我开始这项任务之前,任何其他可能相关的建议或提示也将不胜感激:)

    3 回复  |  直到 14 年前
        1
  •  30
  •   SLaks    14 年前

    FileResult ContentResult 内容类型为 text/css

    例如:

    return Content(cssText, "text/css");
    return File(cssStream, "text/css");
    

    编辑 :您可以制作 Css 控制器中的助手方法:

    protected ContentResult Css(string cssText) { return Content(cssText, "text/css"); }
    protected FileResult Css(Stream cssStream) { return File(cssStream, "text/css"); }
    
        2
  •  5
  •   Jørn Schou-Rode dscher    14 年前

    无需创建自定义ActionResult类型。因为CSS是一个“纯文本”,你应该可以很好地使用它 ContentResult . 假设你继承了 Controller 同学们,只要做:

    return Content(cssData, "text/css");
    
        3
  •  0
  •   user151323 user151323    14 年前

    我正在考虑为什么ASP.NETMVC中没有CssResult,以及是否有它不存在的原因。

    创建自定义ActionResult不是最好的方法吗?

    这样做是正确的。我根据自己的需要添加了RssActionResult和AtomActionResult。添加更多类型也是合理的,比如文档、PDF、图像等。

    返回由动作方法动态生成的CSS

    还要记住,浏览器通常会缓存css,除非它在url中看到一些变化。添加一个总是递增的参数是一个常见的解决方案。

    <link rel="stylesheet" href="http://site.com/styles.css?v=26">