我們正在考慮推進ASP.NET MVC項目,並討論路由和參數的問題。何時使用路由規則vs使用asp.net查詢字符串參數mvc
看到您如何輕鬆地在ASP.NET MVC中設置其中一個或兩者的組合,有沒有我在使用其中一個時應該注意的任何注意事項?
我們正在考慮推進ASP.NET MVC項目,並討論路由和參數的問題。何時使用路由規則vs使用asp.net查詢字符串參數mvc
看到您如何輕鬆地在ASP.NET MVC中設置其中一個或兩者的組合,有沒有我在使用其中一個時應該注意的任何注意事項?
我會建議保持您的URL儘可能乾淨,儘可能嘗試和使用路由。您應該嘗試製作RESTful URI,將信息傳遞給用戶。例如:
www.yourdomain.com/Products/Sports/Clothing
比
www.yourdomain.com/Products?Department=Sports&SubDepartment=Clothing
清潔很多,如果你使用一噸的查詢字符串的話,就不會是一個乾淨的URI和更少的信息傳達給用戶。
即便如此,我們的團隊確實使用jQuery查詢字符串進行ajax類型的請求。這是因爲這些URI位於我們的標記中,並且不會在瀏覽器窗口中看到。這有助於保持global.asax的小一點,因爲它不會受到大量路線的污染。
在我的項目中,我們只使用querystrings作爲可選值。這主要是過濾,排序和分頁列表。可選值在路線中很難處理。
在URL中維護查詢字符串非常困難。使用ActionLink和其他路由感知幫助程序時不會呈現它們。
我能理解「可選值有困難的途徑來處理」。你能對這句話更清楚嗎? – Adrian 2015-01-30 11:20:19
網址將在路徑中具有可選值。假設你有可選值「OrderBy」和「FilterBy」。在路徑中看起來如何?也許像/ mycontroller/myaction/orderbyprice/filterbyisavailable。如果OrderBy不存在,您的路徑將變爲/ mycontroller/myaction/{值映射爲null}/filterbyisavailable。它可以,如果你在路線的末尾有可選的值。 – 2015-01-30 13:38:56
整體的好建議。 – 2010-03-27 19:52:01