asp.net-mvc - 何时使用RedirectToAction以及在哪里使用RedirectToRouteResult?

标签 asp.net-mvc asp.net-mvc-4

问题

在哪种情况下,我可以使用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 时,它的外观不太友好。

两者都可以达到相同的目标。在大多数情况下,您需要问自己的问题实际上是:

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

  • 如果您的答案为否或我不知道,
    RedirectToAction("Action", "Controller", new { parameter = value });
    

    可能是您最好的选择!

    编辑:

    以下是有关RedirectToRouteResult的一些信息。

    Reference to some MVC Redirects.

    在此,您将注意到RedirectToRouteResult通常不是您要在操作中返回的东西。它用作多个RedirectToRoute调用的返回类型。例如,您将在该书中看到2个通话。 RedirectToRouteRedirectToRoutePermanent

    它们都返回RedirectToRouteResult,除了RedirectToRoutePermanent返回带有永久重定向bool true的结果。这将返回HTTP 301 status code

    希望这可以帮助!

    关于asp.net-mvc - 何时使用RedirectToAction以及在哪里使用RedirectToRouteResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16945519/

    相关文章:

    c# - 如何在 Razor mvc5 中每第 3 列创建一行?

    asp.net-mvc - 如何将 ms 显示从 LHS 移动到 RHS

    asp.net-mvc - Https:从 http 隐藏 Controller 方法

    javascript - 使用 JavaScript 在 mvc 4 中使用 C# 在部分 View 中使用 HTML 打印 div

    c# - 如何忽略 ASP.NET MVC 路由中 "controller/action"之后的所有字符?

    asp.net-mvc - 使用 catchall 通配符重定向到 Controller (但使用不同的主 Controller )

    c# - Azure 下载 blob,创建 zip 并发送给用户

    c# - 在类库项目中统一依赖注入(inject)

    wcf - 何时使用MVC4 Web-API和传统的HTTP Web服务?

    mysql - 将 WebSecurity 与现有 Mysql 数据库结合使用