Question
在什么情况下,我可以使用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();
}
}
两段代码都有共同的结果
当在控制器中使用时,两者之间没有太大区别,就像您在示例中一样。
他们最终都实现了相同的目标。然而,RedirectToRouteResult()主要用于action过滤器类型的场景看到这里。 https://stackoverflow.com/questions/5904976/how-do-i-redirect-user-to-another-controller-action-from-an-asp-mvc-3-action-fil当仅在控制器上进行操作时,它对眼睛不太友好。
两者可以实现相同的目标。在大多数情况下,您需要问自己的问题实际上是:
- 使用 RedirectToRouteResult() 时是否需要永久重定向标志?
- 使用 RedirectToRouteResult() 时是否需要编写额外的代码?
如果你的答案是否定的或者我不知道
RedirectToAction("Action", "Controller", new { parameter = value });
可能是您最好的选择!
EDIT:
这是一些关于什么的说明RedirectToRouteResult
is.
在此你会注意到RedirectToRouteResult
不是您通常会在操作中调用返回的内容。它用作多个的返回类型RedirectToRoute
来电。例如,您会在那本书中看到两个调用。RedirectToRoute
and RedirectToRoutePermanent
.
他们双双回归RedirectToRouteResult
除了,RedirectToRoutePermanent
返回带有永久重定向布尔的结果true
。这会返回一个HTTP 301 status code
.
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)