2011-01-07 51 views
1

我們正在開發一個新的系統來替換現有的系統。如何將Homepage.aspx重定向到MVC默認路由?

新系統是ASP.NET MVC,因此我們正在定義到我們的控制器和操作的路由。

舊系統與傳統的ASP.NET一樣,所以URL包含大量的.aspx頁面。

我們希望,這樣當用戶試圖訪問/Homepage.aspx(很多用戶都會有一個書籤)來設置重定向,他們會被重定向到新系統中的默認路由,這僅僅是/

什麼是我做這件事的最好方法?

編輯: @Chance下面推薦了我指定的路線:

routes.MapRoute("Homepage", "Homepage.aspx", new { controller = "controller", action = "homepage" });

這工作,但我喜歡做一個重定向,因爲我不想Homepage.aspx在地址欄做。還有什麼我可以做的嗎?

回答

5

你可以看看它說明了如何可以實現一個傳統的路由處理程序將執行301個永久重定向的following blog post

1

你可以給你的默認控制器/操作一個額外的硬編碼路由。即

routes.MapRoute("Homepage", "Homepage.aspx", new { controller = "controller", action = "homepage" });

+0

這可行,但我想做一個重定向,因爲我不想在地址欄中有`Homepage.aspx`。 – DaveDev 2011-01-07 14:07:34

+0

這不適合我,除了上面的代碼之外,我會錯過任何東西嗎?我正在使用MVC3。 – Picflight 2011-02-21 18:31:34

0

另一種選擇是簡單地創建一個靜態頁面,用元重定向代替HomePage.aspx。這將允許您向用戶顯示一條消息,通知他們網站已更改,並督促他們更新其書籤。

您可以通過爲404指定靜態頁面或特定URL創建自定義錯誤處理程序來將其擴展到整個站點。

3

將這個代碼在Global.asax文件:

protected void Application_BeginRequest(object sender, EventArgs e) 
{  
    if (Request.Url.ToString().ToLower().Contains("homepage.aspx")) 
    {    
     Context.Response.StatusCode = 301; 
     Context.Response.Redirect("/"); 
    } 
} 

您可以修改這個代碼,以適用於其他老「的.aspx」頁面以及。