2011-12-19 21 views
1

我有一個令人困惑的問題。我必須在ASP.NET MVC中轉換ASP.NET Web應用程序。一切都很好,但問題是,網站所有者希望網頁的網址不應該改變意味着如果任何網頁有一個網址http://abc.com/a.aspx那麼它應該是它的。 現在我已經告訴我的團隊成員,不可能在ASP.NET MVC中播放任何類似.aspx擴展名的擴展名,但他告訴我要搜索它。 因爲我做了很多搜索,但沒有找到任何方法來執行它。 是否有可能我們可以通過一些路由配置在ASP.NET MVC2或3中的URL中廣播.aspx擴展,以便頁面url不會更改。我們可以在ASP.NET MVC中廣播.aspx擴展名

任何幫助將不勝感激。

回答

0

您可以通過多種方式來做到這一點。最簡單的可能是使用IIS Url重寫將任何.aspx文件重寫爲其相應的MVC路由。

另一種方法是簡單地創建匹配.aspx擴展名的路由並將它們路由到您的Controller/Action。即:

routes.MapRoute("Default", "{controller}/{action}.aspx", 
    new { controller = "Home", action = "Index" }); 

這裏的缺點是你不能使用友好的參數,以及你可以,但它可能會破壞現有的網址。他們看起來像blah.com/blah/blah.aspx/blah。當然,查詢字符串參數仍然有效。

第三種方法是簡單地設置IIS以將任何帶有.aspx的擴展名重定向到其相應的MVC路由。

1

是的,看看這篇文章:

Integrating ASP.NET MVC 3 into existing upgraded ASP.NET 4 Web Forms applications

Hanselman的也做了的NuGet包的偉大工程,以讓球滾動你點幾下:

AddMvc3ToWebForms

我個人使用這個NuGet包進行ASP.NET到MVC 3的轉換。我們能夠從相同的解決方案同時運行這兩個版本的應用程序,非常好!

+0

嗨@rick schott我讀過你發送的鏈接,但有一個困惑,無論我瞭解它是一個混合應用程序,它包含asp.net和asp.net mvc應用程序,但它不brodcast .aspx擴展的意見。謝謝 – Awadhendra 2011-12-19 04:17:16

+0

你可以配置MVC使用各種視圖引擎:http://stackoverflow.com/questions/1451319/asp-net-mvc-view-engine-comparison – 2011-12-19 04:33:09

相關問題