我基于这里提到的动态css解决方案:
我注意到继承的PartialViewResult只有一个模型的getter,是否有另一种方法我可以实现这个功能,其中HttpContext.Response.ContentType =“text / css”,我可以像你可以使用partialview一样发送模型?
答案 0 :(得分:9)
只需调整自定义操作结果,使其占用模型:
public class CssViewResult : PartialViewResult
{
public CssViewResult(object model)
{
ViewData = new ViewDataDictionary(model);
}
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.ContentType = "text/css";
base.ExecuteResult(context);
}
}
然后:
public ActionResult Css()
{
MyViewModel model = ...
return new CssViewResult(model);
}
并在视图中:
@model MyViewModel
@{
var color = "White";
if (Model.Hour > 18 || Model.Hour < 8)
{
color = "Black";
}
}
.foo {
color: @color;
}