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状态代码。

希望这可以帮助!

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....