2009-07-03 121 views

回答

6

我不確定你的前提來自哪裏?它看起來像一個人造的例子,這使得很難評論。

一個更好的比較,會是這樣的:

http://MySite.com/Project/24/Members/Edit 

至於反對:

http://MySite.com/Projects.aspx?id=24&section=Members&action=Edit 

其中,除其他事項外,實體的層次結構是顯而易見的第一個例子(即,一個項目包含成員)。它還表明,您可以使用其他網址與第一個網址(即/Projects/24/Projects/24/Members)具有相似的結構,因此從這個意義上講它更加簡潔。

如果它歸結爲具有可變數量的參數,如搜索行動,那麼它是完全正常使用URL參數,因爲這會給你更多的靈活性,例如:

http://MySite.com/Projects/Search?name=KillerApp&type=NET 

您可以構建使用的第一個樣式的URL,但是你沒有真正得到什麼,以及管理路由可能增加不必要的開銷:

http://MySite.com/Projects/Search/name/KillerApp/type/NET 

我認爲,這(或任何類似的建築,例如,如果你刪除帕拉姆名稱)遭受人爲等級 - 第四在這種情況下,e行爲實際上是搜索,而其他一切都只是搜索的一個參數,所以它處於同一層次結構中,而不是某個「子」層次結構。

+0

這是一個真實的例子。見http://stackoverflow.com/questions/1080415/custom-routing-rules-eg-www-app-com-project-35-search-89-edit-89/1080467#1080467 – 2009-07-04 00:45:28

3

不是一個公平的比較。風格可以讓你放下GET參數的名字,所以被路由應該讀什麼樣

http://MySite.com/Project/24/32/49 

那實在是一種審美的提高,雖然 - 這既是整潔漂亮,而且更容易輸入或讀出的人。

+0

該語法的唯一問題是它需要每個參數。如果其中一個參數被省略,路由將會變得混亂。 – 2009-07-04 00:06:57

0

更容易記住。用戶更容易記住/ Employee/1來獲取員工#1的信息,而不是理解查詢字符串。沒有理由使用它,但我認爲它有一點小小的改進。

3

雖然(由於大多數搜索引擎排名算法沒有公開披露),但它被認爲具有SEO價值,儘管它主要是人類可讀性問題。

1

在這個例子中,它可能不會更好。但一般來說這是一個Search Engine Optimization。這裏有一些SEO best practices - 那篇文章...

理想情況下,URL結構應 靜態的,並顯示在頁面是什麼 約。一個簡單明瞭的網址 結構對於搜索引擎蜘蛛和人類 生命都更加容易。