2010-12-08 27 views
22

我是新来的MVC任何人都可以告诉我什么RedirectResult用于?MVC RedirectResult

我想知道这是什么之间的不同:

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

这:

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

回答

49

它是用来执行HTTP redirect给定的URL。基本上它会在响应中发送302状态码和位置标题,以便客户端现在向这个新位置发出一个新的HTTP请求。

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

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

至于你的两段代码之间的差异而言,好了,它比相关的MVC的C#问题。实际上RedirectResult来自ActionResult,所以两者都是有效的语法。我个人的喜好,例如,你可以决定要改变这种重定向返回一个视图中第一个:

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

,如果你有明确规定,返回类型是RedirectResult代替ActionResult你现在将不得不修改到ViewResult(可能不是什么大不了的事情,但这是你必须做的一个额外步骤)。

+0

谢谢,但我知道RediectResult派生自ActionResult但仍然有什么不同?当我们应该重新调用RedirectResult而不是Action Result – Stacker 2010-12-08 12:03:53

0

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

因此,如果将来你想改变返回类型,那么你可以使用行为结果。

相关问题