2008-08-22 82 views
2

在最近的一個項目中,我使用PHP構建了自己的MVC框架。我實施的一件事是路由系統。我使用Apache的mod_rewrite將所有請求發送到index.php,然後解析URI以提取信息並路由請求。ASP.NET - 構建您自己的路由系統

我現在正在討論ASP.NET,我想知道是否/我該如何執行類似的操作。有沒有辦法將所有請求(類似於WordPress的做法)路由到執行中央路由處理的頁面?我意識到ASP.NET的MVC框架,但是我想在自己修改和學習的時候嘗試一下。

編輯: 順便說一句,我的託管服務提供商運行IIS 6

回答

6

這將是一個很長的答案,因爲我想確保你完全明白,你可以完成你想做的事情的所有方式。

爲ASP.NET MVC框架提供動力的路由引擎將與傳統的ASP.NET框架一起使用。您可以利用RouteTable並分配路由,就像在ASP.NET MVC應用程序中一樣。傳統ASP.NET網站中您只是沒有獲得MVC部分。這對ASP.NET Framework來說是一個巨大的增強,很高興看到它們重用了這些代碼並使它在兩個框架中都能正常工作。如果您想了解更多信息,請查看ScottGu的post並向下滾動到URL路由改進。另外這裏是關於如何使用Phil Haack的WebForms中的System.Web.Routing的reference

現在,如果你仍然想寫你自己的。您將需要了解ASP.NET HTTP管道以及如何實現IHttpModuleIHttpHandler接口來創建您自己的HttpModule或HttpHandler類來處理您的路由。這些接口是編寫自己的路由引擎的關鍵。爲了讓這些接口成爲一個工作示例,我無法推薦這個MSDN article。它向您展示瞭如何使用任一接口,並解釋創建自己的路由/ URL重寫引擎時的差異。

現在,如果你發現這可能對你很有幫助。您可以使用已經在.NET中編寫路由/ URL重寫引擎的人使用的第三方庫。這是一個問題,我不久前在SO上詢問「What Url rewriter do you use for ASP.Net?」。

+0

很好的答案...我也喜歡這些文章 - http://chriscavanagh.wordpress.com/2008/03/11/aspnet-routing-goodbye-url-rewriting/,http://blogs.msdn.com /b/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx – kape123 2011-02-14 22:25:39