爲什麼是這樣的:ASP.NET路由問題
http://MySite.com/Project/24/Search/32/Edit/49
優於呢?
http://MySite.com/Project/24?Search=32&Edit=49
爲什麼是這樣的:ASP.NET路由問題
http://MySite.com/Project/24/Search/32/Edit/49
優於呢?
http://MySite.com/Project/24?Search=32&Edit=49
我不確定你的前提來自哪裏?它看起來像一個人造的例子,這使得很難評論。
一個更好的比較,會是這樣的:
http://MySite.com/Project/24/Members/Edit
至於反對:
http://MySite.com/Projects.aspx?id=24§ion=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行爲實際上是搜索,而其他一切都只是搜索的一個參數,所以它處於同一層次結構中,而不是某個「子」層次結構。
不是一個公平的比較。風格可以讓你放下GET參數的名字,所以被路由應該讀什麼樣
http://MySite.com/Project/24/32/49
那實在是一種審美的提高,雖然 - 這既是整潔漂亮,而且更容易輸入或讀出的人。
該語法的唯一問題是它需要每個參數。如果其中一個參數被省略,路由將會變得混亂。 – 2009-07-04 00:06:57
更容易記住。用戶更容易記住/ Employee/1來獲取員工#1的信息,而不是理解查詢字符串。沒有理由使用它,但我認爲它有一點小小的改進。
雖然(由於大多數搜索引擎排名算法沒有公開披露),但它被認爲具有SEO價值,儘管它主要是人類可讀性問題。
在這個例子中,它可能不會更好。但一般來說這是一個Search Engine Optimization。這裏有一些SEO best practices - 那篇文章...
理想情況下,URL結構應 靜態的,並顯示在頁面是什麼 約。一個簡單明瞭的網址 結構對於搜索引擎蜘蛛和人類 生命都更加容易。
這是一個真實的例子。見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