MVC RedirectResult

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

我想知道这有什么不同:

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

还有这个:

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

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

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

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

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

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

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

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

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