asp.net-mvc - 如何使用继承partialviewresult的类设置模型

标签 asp.net-mvc razor

我已经基于这里提到的动态 css 解决方案:

Dynamic CSS for ASP.NET MVC?

我注意到继承的 PartialViewResult 只有一个模型的 getter,有没有另一种方法可以实现这个功能,其中 HttpContext.Response.ContentType = "text/css"并且我可以像使用 partialview 一样发送模型?

最佳答案

只需调整自定义操作结果,使其采用模型:

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);
 }

并在 View 中:
@model MyViewModel
@{
    var color = "White";
    if (Model.Hour > 18 || Model.Hour < 8)
    {
        color = "Black";
    }
}
.foo {
    color: @color;
}

关于asp.net-mvc - 如何使用继承partialviewresult的类设置模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198546/

相关文章:

c# - MVC - 并行任务中的 System.Threading.ThreadAbortException

asp.net-mvc - 是否可以从 asp.net-mvc 站点或其他远程选项管理 Windows 调度程序?

jQuery TABS 在新的 ASP .NET MVC4 项目下不工作

c# - DbContext 必须可转换为 System.Data.Entity.DbContext

asp.net-mvc - 使用 MVC 动态地使用 Kendo UI 图表标题

c# - ajax中传递参数得到空值

jquery - 如何在 ASP.Net MVC 5 中调用同一项目但不同文件夹中的 jQuery 函数?

asp.net - 如何在asp.net core中的ajax中加载部分 View

javascript - jquery.validate.js 内部错误 "javaScript runtime error: Unable to get property ' 调用'未定义或空引用“

asp.net-mvc - 带有 MVC 的 AngularJS 模板