2009-07-14 70 views

回答

6

這些URL實際上並不指向文件。他們使用URL重寫規則將URL轉換爲數據庫查詢並將輸出反饋回指定頁面(其URL不顯示)。

編輯:對於澄清 SO使用MVC,所以該URL指向一個特定的控制器動作(具有或沒有參數,取決於頁)。該動作運行一些代碼來獲取數據或其他內容,並將其傳遞給相應的視圖,該視圖基本上是一個填充動作提供的信息並呈現頁面的html模板。

+3

嗯。有點。它實際上調用一個控制器操作方法,它可能會執行一個數據庫查詢並呈現與該url相關的特定視圖。 – tvanfosson 2009-07-14 20:29:00

5

堆棧溢出使用ASP.NET MVC,它可以乾淨地清理URL。

基本上你需要的是一些需要乾淨的URL,然後將它映射到一個標準的.NET URL並傳遞額外的'目錄'作爲參數的東西。例如將/ blog/post-no-one改寫爲/blog.aspx?id=post-no-one。

新的IIS有,如果你想與傳統的ASP.NET做在重寫插件會爲你做這一點:

Using URL rewrite module

或者您也可以通過重寫HTTP模塊和做滾你自己在那裏重寫。這裏是一個複雜的例子:

URL rewriting engine

2

由於幾個人都提到,所以使用隨MVC路由引擎的網址。他們實際上已經通過CodePlex提供了這些代碼,因此您可以在基於webforms的ASP.NET網站中使用它。

菲爾哈克對如何做到這一個很好的總結:

Routing w/WebForms

它包括樣品,鏈接等,應該在讓你開始有幫助的。