Asp.net mvc 3 MVC3路由问题-如何对所有控制器方法重新使用视图?

Asp.net mvc 3 MVC3路由问题-如何对所有控制器方法重新使用视图?,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc 3,Asp.net Mvc Routing,我试图在MVC3中实现一个公共控制器来返回各种JSON提要,例如- public class AjaxController : Controller { public ActionResult Feed1() { ViewBag.Json = LogicFacade.GetFeed1Json(); return View(); } public ActionResult Feed2() { ViewBag.

我试图在MVC3中实现一个公共控制器来返回各种JSON提要,例如-

public class AjaxController : Controller
{
    public ActionResult Feed1()
    {
        ViewBag.Json = LogicFacade.GetFeed1Json();
        return View();
    }

    public ActionResult Feed2()
    {
        ViewBag.Json = LogicFacade.GetFeed2Json();
        return View();
    }
}
这个类中有30多个方法,问题是这需要为写出ViewBag.Json的每个控制器方法(sign)实现一个相同的视图

我假设这是一个路由问题,但我正在努力解决这个问题。以下内容不起作用-

  • 尝试设置ViewBag.Json,然后使用RedirectToAction(),但这似乎重置了ViewBag.Json
  • 注:JsonResult不适合我的需要,我使用的是不同的JSON序列化程序
因此,这里的目标是维护一个视图文件,但使用路由调用的单独方法保留这个类,而不是一个蹩脚的switch语句实现


感谢您的帮助。

使用相同的视图,只需指定名称即可。如果仅由一个控制器使用,则可以存储在控制器的视图文件夹中;如果由多个控制器使用,则可以存储在共享视图文件夹中

return View("SharedJsonView");

另一个可能更好的解决方案是创建自己的结果——可能来自JsonResult,也可能直接来自ActionResult——以创建所需的JSON响应。查看JsonResult on的源代码,了解如何实现它。

真是糟糕,简单得让人难堪。谢谢(需要等待5分钟来接受答案)@克里斯——如果你去查看视图的方式,而不是到处重复它,考虑在你的控制器上创建一个私有方法,返回命名的视图,然后调用它。代码>公共操作结果JsonView(){返回视图(“SharedJsonView”);}和
返回JsonView()