2010-12-08 24 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結果。

因此,如果將來你想改變返回類型,那麼你可以使用行爲結果。

相關問題