2011-11-02 36 views
0
public ActionResult Summary(int claimId,bool status) 

我有超鏈接。MVC重要性的URL

1.http://localhost:2020/Coverage/Summary/60/true 
2.http://localhost:2020/Coverage/Summary?claimId=60&status==true 

上述鏈接都適用於我。

在mvc我認爲我們需要遵循第一種方式。

這種類型的URL有什麼意義。 這種類型的URL是否與REST有任何連接?

回答

0

在mvc我認爲我們需要遵循第一種方式。

沒有必要。

這是什麼類型的URL

主要視覺在某些情況下的意義可能更容易讓用戶記住,因爲它是短。請小心,因爲如果您開始將所有參數作爲網址路徑令牌,您可能會進入serious troubles。所以請適量使用。如果你有控制權的整數值可以正常工作,但是如果你開始對每個查詢字符串參數使用這個參數,甚至那些用戶輸入的參數可能會遇到問題。而且,由於參數的順序現在很重要,因爲它們不再有名稱,如果它們中的一些是可選的,則路由不能再消除它們之間的歧義。

這種類型的URL是否與REST有任何連接?

1

,因爲所有必要的渲染視圖的數據傳遞給服務器的參數都URL格式將被視爲REST號。在今天的REST世界中,第一個URL格式將被視爲一個'乾淨'的URL,因爲它不直接使用請求參數,但實際上他們做同樣的事情。

0

第一種方法(基於路徑)只有在路徑標識正在顯示的資源時纔有意義。 That is the central principle of RESTful URLs。所以像「Id」這樣的獨特項目在路徑中是有意義的。

但是,選項應顯示爲查詢字符串。查詢字符串包含一個key和一個value,這給了他們更多的含義,但不如基於路徑的URL重要。

默認的MVC路由將查詢字符串中的所有「id」值放入路徑中,並將所有其他值放入路徑中。所以我通常遵循這條路線。在你的情況下,我肯定會推薦#2,因爲claimIdstatus似乎沒有識別Summary