MVC的重定向主要經過RedirectResult和RedirectToRouteResult實現。很顯然,這兩個對象都是MVC返回對象ActionResult的兩個繼承,具體原理不贅述。服務器
這兩個方法的做用相同,第一個採用的是url的方式,第二個採用的是路由表的方式。搜索引擎
RedirectResult構造方法中的第一個參數url傳入要跳轉的地址,可採用絕對地址跟相對地址,第二個參數描述是不是暫時重定向即(301重定向和302重定向)。在返回該對象時會將重定向地址以及狀態碼(即301,302寫入響應包頭location中)。url
301跟302重定向的區別:對象
302重定向是暫時的重定向,搜索引擎會抓取新的內容而保留舊的網址。由於服務器返回302代碼,搜索引擎認爲新的網址只是暫時的。繼承
301重定向是永久的重定向,搜索引擎在抓取新內容的同時也將舊的網址替換爲重定向以後的網址。索引
所以這兩種重定向體驗上沒有任何區別,只有在SEO上會有所不一樣。路由
另外抽象類ActionResult還定義了RedirectToAction 方法,實際也是調用返回的RedicrectToRoute對象io