ASP MVC在运行时用JSON替换视图生成?

时间:2015-02-11 18:26:19

标签: c# .net asp.net-mvc model-view-controller

说我有一个像这样的控制器动作:

public ActionResult Foo() {
    return View(new SomeModel {...});
}

我是否有可能在运行时将此操作返回 JSON 而不是 HTML ?这是一些自动化测试。我找到的唯一方法是修改我的控制器基类来覆盖View(...),这样如果某些设置为真,它将返回Json(model)而不是它通常做的。

我宁愿不这样做,因为它意味着即使在非测试环境中也会针对每个动作进行评估。

2 个答案:

答案 0 :(得分:0)

这非常简单......

public ActionResult Foo() {
    var model = new SomeModel {...};

    if (somePropertyYouWantToCheck)
        return Json(model);

    return View(model);
}

答案 1 :(得分:0)

我发现MVC功能完全符合我的要求 - 过滤器。在我的例子中,一个全局结果过滤器用一个JsonResult替换ActionResult。

请参阅http://weblogs.asp.net/gunnarpeipman/asp-net-mvc-3-global-action-filters