Asp.net mvc 3 MVC3路由问题-如何对所有控制器方法重新使用视图?
我试图在MVC3中实现一个公共控制器来返回各种JSON提要,例如-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.
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序列化程序
感谢您的帮助。使用相同的视图,只需指定名称即可。如果仅由一个控制器使用,则可以存储在控制器的视图文件夹中;如果由多个控制器使用,则可以存储在共享视图文件夹中
return View("SharedJsonView");
另一个可能更好的解决方案是创建自己的结果——可能来自JsonResult,也可能直接来自ActionResult——以创建所需的JSON响应。查看JsonResult on的源代码,了解如何实现它。真是糟糕,简单得让人难堪。谢谢(需要等待5分钟来接受答案)@克里斯——如果你去查看视图的方式,而不是到处重复它,考虑在你的控制器上创建一个私有方法,返回命名的视图,然后调用它。代码>公共操作结果JsonView(){返回视图(“SharedJsonView”);}和
返回JsonView()代码>