目前我的項目有一個頁面domain/cocktail
,它顯示所有雞尾酒的列表。如果用戶想要過濾列表,他可以選擇排序順序,雞尾酒的開頭字母和強度。所以url看起來像domain/cocktail?letter=B&sort=nu&strength=2&page=4
。ASP.NET MVC URL - 正確的方法
正如我讀過的,它不是使用這樣的URL的最佳選擇。你可以建議什麼方法來獲得具有相同功能的SEO友好的URL。
目前我的項目有一個頁面domain/cocktail
,它顯示所有雞尾酒的列表。如果用戶想要過濾列表,他可以選擇排序順序,雞尾酒的開頭字母和強度。所以url看起來像domain/cocktail?letter=B&sort=nu&strength=2&page=4
。ASP.NET MVC URL - 正確的方法
正如我讀過的,它不是使用這樣的URL的最佳選擇。你可以建議什麼方法來獲得具有相同功能的SEO友好的URL。
ASP.NET MVC應用程序使用ASP.NET路由系統,它決定URL如何映射到特定的控制器和操作。
在瀏覽器請求http://yoursite/Home的默認路由系統下,它獲取Controller的action
方法的輸出。因此,如果您使用CoctailList
操作方法推導從後端的列表,用戶將需要在http://yoursite/Controller/CoctailList
在你的情況,以點帶面,我會後的搜索條件,但我會把在頁面上一樣網址的結尾:
domain/cocktail/2
domain/cocktail/3
您可以通過創建一個JSON對象發佈數據:
var viewModel = new Object();
viewModel.Letter = "B";
viewModel.Sort = "nu";
$.post("/domain/cocktail/" + page, viewModel, function() { });
我試圖使用'public ActionResult Index(int page,Options opt)'其中'Options'是一個具有'Sort','Strength'屬性的類,等等。如果我嘗試使用這個動作,那麼'/ domain/cocktail/1' url會出現錯誤「'/ cocktail/1' not found」。如果我將頁面作爲Options類的屬性傳遞,我會得到OK響應,但沒有任何反應(也許動作必須返回與View不同的東西)? – ChruS
現在我有CocktailController與索引操作。所以最好不要將索引操作用於這種目的?我該怎麼處理參數?如果我只有頁面參數,它將看起來像域/雞尾酒/ 3。但有幾個參數,它看起來像在我的文章上面。 – ChruS
查看瀏覽器何時請求http:// yoursite/Home,它從HomeController的Index方法獲取輸出。因此,如果瀏覽器請求http:// yoursite/ConctailController,它將從ConctailController獲取index()方法。並且http:// yoursite/ConctailController/CockListFunc將指向您的控制器中的CockListFunc。因此,編寫一個CockListFunc,它返回一個列出所有合作伙伴的視圖。你需要將你的模型綁定到控制器並在視圖中表示 –