对于ASP.NET MVC 2来说,这又是一个简单的问题。
public ActionResult MyAction(MyModel model)
{
if (ModelState.IsValid)
{
// do great stuff and redirect somewhere else
}
// model has errors
return View("~/Home/Index", model);
}
问题是我想返回一个在当前控制器之外的视图。我不想重定向,因为我想将模型交给下一个视图。 “视图”方法不允许指定控制器。上面的“返回视图......”显然不起作用。
我确信这里有一个简单的解决方法:)
答案 0 :(得分:2)
如果您的视图由多个控制器使用,请将其放在“共享视图”文件夹中,而不是特定控制器的视图文件夹中。然后你可以简单地用它的名字来引用它,如果不同于动作的名称。
答案 1 :(得分:1)
public ActionResult MyAction(MyModel model)
{
if(ModelState.IsValid)
{
return RedirectAction("...");
}
ControllerContext.RouteData.Values["controller"] = "SomeOtherController";
return View("Index");
}
将指导您在Index
文件夹下进行SomeOtherController
查看。
答案 2 :(得分:0)
您需要一个扩展程序
return View("~/Path/To/View.aspx", model);