我想将一个Action返回给另一个Controller
示例:我有2个控制器:
[Route("myurl"]
public class HomeController : Controller
{
public ActionResult Action1()
{
if (...)
{
return Action2(); //working fine i will keep my route
}
else
{
return OtherController.Action3(); //Don't know how to do it here.
}
}
public ActionResult Action2()
{
return View();
}
}
和
public class OtherController : Controller
{
public ActionResult Action3()
{
return View();
}
}
如果Action在同一个控制器内,但希望将Action1从HomeController返回到Other3的Action3,它可以正常工作。 我想保持相同的路线(不是重定向到其他路线)。
有什么想法吗?
答案 0 :(得分:1)
您是否尝试过使用 RedirectToAction ?
return RedirectToAction("ACTION_NAME", "CONTROLLER_NAME", new { area = "" });
答案 1 :(得分:1)
我发现了:
我需要像那样回来:
return DependencyResolver.Current.GetService<OtherController>().Action3();
[Route("myurl"]
public class HomeController : Controller
{
public ActionResult Action1()
{
if (...)
{
return Action2(); //working fine i will keep my route
}
else
{
return DependencyResolver.Current.GetService<OtherController>().Action3();
}
}
public ActionResult Action2()
{
return View();
}
}
答案 2 :(得分:0)
返回RedirectToAction(“ActionName”,“ControllerName”);
答案 3 :(得分:0)
您可以通过调用控制器类protected internal RedirectToRouteResult RedirectToAction(string actionName, string controllerName);
的以下方法来执行此操作。根据您的要求,else块中的代码看起来像base.RedirectToAction("ACtion3","OtherController");