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

Mor*_*ner 17 .net css c# asp.net-mvc

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

  • 返回由action方法动态生成的CSS
  • 根据请求参数或cookie选择CSS文件
  • 使用工具来组合和压缩(缩小)CSS

我目前正在考虑为什么ASP.NET MVC中没有CssResult,以及是否存在缺席的原因.创建自定义ActionResult不是最好的方法吗?有没有其他方式我忽略了做我需要的东西?

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

SLa*_*aks 28

您需要返回一个FileResultContentResult内容类型为text/css.

例如:

return Content(cssText, "text/css");
return File(cssStream, "text/css");
Run Code Online (Sandbox Code Playgroud)

编辑:您可以Css在控制器中创建一个帮助方法:

protected ContentResult Css(string cssText) { return Content(cssText, "text/css"); }
protected FileResult Css(Stream cssStream) { return File(cssStream, "text/css"); }
Run Code Online (Sandbox Code Playgroud)

  • @transformer:只需创建一个普通的`<link>`标记,指向为您的CSS提供服务的URL. (2认同)

Jør*_*ode 5

无需创建自定义ActionResult类型.由于CSS是"正文",你应该没问题ContentResult.假设您继承了Controller该类,只需执行以下操作:

return Content(cssData, "text/css");
Run Code Online (Sandbox Code Playgroud)