问题
在哪种情况下,我可以使用RedirectToAction
?在哪里可以使用RedirectToRouteResult
?
我有以下两种操作方法。
方法-1
public class ActionResultTypesController : Controller
{
public ActionResult Content()
{
return new RedirectToRouteResult(new RouteValueDictionary(
new { action = "Fileresult", controller = "ActionResultTypes" }));
}
public ActionResult Fileresult()
{
return View();
}
}
方法-2
我也可以像下面一样编写相同的代码。唯一的不同是这次我使用
RedirectToAction
代替RedirectToRouteResult
public class ActionResultTypesController : Controller
{
public ActionResult Content()
{
return RedirectToAction("Fileresult", "ActionResultTypes");
}
public ActionResult Fileresult()
{
return View();
}
}
这两段代码都有共同的结果
最佳答案
在 Controller 中使用时,两者之间没有太大区别,就像您在示例中一样。
他们最终都实现了相同的目标。但是,RedirectToRouteResult()主要用于 Action 过滤器类型的场景seen here.。仅在对 Controller 执行 Action 时,它的外观不太友好。
两者都可以达到相同的目标。在大多数情况下,您需要问自己的问题实际上是:
如果您的答案为否或我不知道,
RedirectToAction("Action", "Controller", new { parameter = value });
可能是您最好的选择!
编辑:
以下是有关
RedirectToRouteResult
的一些信息。Reference to some MVC Redirects.
在此,您将注意到
RedirectToRouteResult
通常不是您要在操作中返回的东西。它用作多个RedirectToRoute
调用的返回类型。例如,您将在该书中看到2个通话。 RedirectToRoute
和RedirectToRoutePermanent
。它们都返回
RedirectToRouteResult
,除了RedirectToRoutePermanent
返回带有永久重定向bool true
的结果。这将返回HTTP 301 status code
。希望这可以帮助!
关于asp.net-mvc - 何时使用RedirectToAction以及在哪里使用RedirectToRouteResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16945519/