asp.net-mvc – 何时使用RedirectToAction和哪里使用RedirectToRouteResult?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 何时使用RedirectToAction和哪里使用RedirectToRouteResult?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在哪个上下文中,我可以使用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()主要用于操作过滤器类型场景seen here.当您在控制器上的操作中使用时,眼睛稍微不那么友善。

两者都能实现同样的目标。在大多数情况下,您需要问的问题是:

>使用RedirectToRouteResult()时,是否需要永久重定向标志?
>在使用RedirectToRouteResult()时,是否要写额外的代码

如果你的答案是否定的或者我不知道,

RedirectToAction("Action","Controller",new { parameter = value });

可能是你最好的打赌!

编辑:

这里有一些关于RedirectToRouteResult的内容

Reference to some MVC Redirects.

在这里你会注意到,RedirectToRouteResult不是你通常在一个操作中返回的东西。它被用作多个RedirectToRoute调用的返回类型。例如,您将在该书中看到2个电话。 RedirectToRoute和RedirectToRoutePermanent。

他们都返回RedirectToRouteResult,除了RedirectToRoutePermanent使用永久重定向bool true返回结果。这将返回HTTP 301状态代码

希望这可以帮助!

猜你在找的asp.Net相关文章