关于重定向到另一个区域的某个动作,有一些关于SO的问题,但没有一个回答我所提出的更具体的问题。
让我们说我有这样的行动:
public virtual ActionResult ActioName(ViewModel model)
{
return View(model);
}
如果不是模型参数,您可以执行以下操作从另一个区域重定向到此操作:
return RedirectToAction("ActioName", "ControllerName", new { Area = "" });
我试图以多种方式包括模型和区域但是没有用。我需要一种方法来包括区域名称和模型。 谢谢。
编辑:TempData不是答案,我不想修改目标控制器。
答案 0 :(得分:0)
使用RedirectToRoute,其中namedRoute提供控制器名称和操作,而不是从URL中检索,就像默认路由一样。
return RedirectToRoute("namedRoute",model);
或者可能:
return RedirectToRoute("namedRoute",new { model: model });
或重定向到某个区域
return RedirectToRoute("Area_namedRoute",model);
请注意,这会触发get请求而不是帖子。这有一些限制需要注意:
话虽如此,如果您需要发帖而不是获取,请参阅ASP.NET MVC: RedirectToAction with parameters to POST Action。