我是MVC的新手,谁能告诉我RedirectResult的用途是什么?

我想知道这之间有什么区别:

public ActionResult Index()
{
    return new RedirectResult("http://www.google.com");
}

还有这个:
public RedirectResult Index()
{
    return new RedirectResult("http://www.google.com");
}

最佳答案

它用于对给定的URL执行HTTP redirect。基本上,它将在响应中发送302状态代码以及Location header ,以便客户端现在向该新位置发出新的HTTP请求。

通常,您将像这样使用它,而不是显式调用构造函数:

public ActionResult Index()
{
    return Redirect("http://www.google.com");
}

就您的两个代码段之间的差异而言,与MVC相关的问题更多的是C#问题。实际上RedirectResult源自ActionResult,因此两者都是有效的语法。我个人比较喜欢第一个,例如您可以决定更改此重定向以返回 View :
public ActionResult Index()
{
    return View();
}

并且如果您已明确指定返回类型为RedirectResult而不是ActionResult,则现在必须将其修改为ViewResult(可能没什么大不了,但这是您必须执行的另一步骤)。

09-26 07:18