Asp.net mvc 重定向到接受模型的另一个区域中的操作
关于重定向到另一个领域的行动,这里有几个问题,但没有一个能回答我提出的更具体的问题 假设我有这样一个动作:Asp.net mvc 重定向到接受模型的另一个区域中的操作,asp.net-mvc,model-view-controller,area,redirecttoaction,Asp.net Mvc,Model View Controller,Area,Redirecttoaction,关于重定向到另一个领域的行动,这里有几个问题,但没有一个能回答我提出的更具体的问题 假设我有这样一个动作: public virtual ActionResult ActioName(ViewModel model) { return View(model); } 如果没有模型参数,您可以执行以下操作从另一个区域重定向到此操作: return RedirectToAction("ActioName", "ControllerName", new { Area = "" });
public virtual ActionResult ActioName(ViewModel model)
{
return View(model);
}
如果没有模型参数,您可以执行以下操作从另一个区域重定向到此操作:
return RedirectToAction("ActioName", "ControllerName", new { Area = "" });
我试着以多种方式包括一个模型和一个区域,但没有成功。我需要一种方法来同时包含区域名称和模型。
多谢各位
编辑:TempData不是答案,我不想修改目标控制器。改用RedirectToRoute,其中namedRoute提供控制器名称和操作,而不是像默认路由那样从url检索
return RedirectToRoute("namedRoute",model);
或者可能:
return RedirectToRoute("namedRoute",new { model: model });
或者重定向到某个区域
return RedirectToRoute("Area_namedRoute",model);
请注意,这将触发get请求而不是post。这有一些限制需要注意:
话虽如此,请查看是否需要post而不是get。改用RedirectToRoute,其中namedRoute提供控制器名称和操作,而不是像默认路由那样从url检索
return RedirectToRoute("namedRoute",model);
或者可能:
return RedirectToRoute("namedRoute",new { model: model });
或者重定向到某个区域
return RedirectToRoute("Area_namedRoute",model);
请注意,这将触发get请求而不是post。这有一些限制需要注意:
也就是说,看看你是否需要发布而不是获取。@markpsmith这是一个类似的问题,增加了切换区域的褶皱。在这种情况下,为副本提供的答案在这里不起作用。您是否尝试过
返回重定向到操作(“ActionName”,“ControllerName”,new{Area=”“,model=model})
?我很困惑。这些答案并没有完全解决这个问题,这个问题增加了“在另一个领域”,这是以前没有讨论过的。区别很重要,我相信,这是一个新的问题,而不是重复的问题。这不是标记答案的重复,而是-上面@B2K建议对我有用的内容的重复-返回重定向到操作(“ActionName”,“ControllerName”,new{Area=“AreaName”,model=model})
@markpsmith这是一个类似的问题,在切换区域增加了皱纹。在这种情况下,为副本提供的答案在这里不起作用。您是否尝试过返回重定向到操作(“ActionName”,“ControllerName”,new{Area=”“,model=model})
?我很困惑。这些答案并没有完全解决这个问题,这个问题增加了“在另一个领域”,这是以前没有讨论过的。区别很重要,我相信,这是一个新问题,而不是重复的问题。这不是重复的标记答案,而是重复的-上面@B2K建议的对我有用的-返回重定向到操作(“ActionName”,“ControllerName”,new{Area=“AreaName”,model=model})