MVC RedirectResult

时间:2010-12-08 11:55:49

标签: c# asp.net-mvc

我是MVC的新手可以有人告诉我RedirectResult用于什么?

我想知道这有什么不同:

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

和此:

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

2 个答案:

答案 0 :(得分:51)

用于对给定网址执行HTTP redirect。基本上,它会在响应中发送302状态代码和Location标头,以便客户端现在向此新位置发出新的HTTP请求。

通常你会像这样使用它而不是显式调用构造函数:

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

就你的两个代码片段之间的区别而言,嗯,它比MVC相关更多的C#问题。实际上RedirectResult派生自ActionResult,因此两者都是有效的语法。我个人更喜欢第一个,例如你可以决定改变这个重定向来返回一个视图:

public ActionResult Index()
{
    return View();
}

如果您已明确指定返回类型为RedirectResult而不是ActionResult,则现在必须将其修改为ViewResult(可能不是什么大问题,但这是一个额外的步骤你必须这样做。)

答案 1 :(得分:0)

基本上两者都是一样的。主要概念是所有结果都来自于acion结果。

因此,如果将来ou想要更改返回类型,那么您可以使用操作结果。