Wolę:/Komentarze/Szukaj/3? Sort = autor. Querystring jest dobrym miejscem do przekazywania parametrów programowych, zwłaszcza jeśli parametr (jak w tym przypadku) nie jest ważny dla celów SEO. Jeśli parametr miał znaczenie semantyczne jako wyszukiwany termin, pierwszy URL byłby lepszy.
W metodzie kontrolera można użyć coś takiego:
public ActionResult Search(int id, string sort)
ASP.NET MVC będzie automatycznie drut kwerendy wartości parametrów swojej metody.
Użyj następującego trasa
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Comments", action = "Search", id = "" } // Parameter defaults
);
/komentarze/Szukaj/3? Sort = autor wezwie Search (3, "autor")
/komentarze/Szukaj/3 wezwie wyszukiwania (3 , null)
Należy pamiętać, że id jest obowiązkowe więc url zawiedzie: /Komentarze/Szukaj
myślę, że pójdę do tego rozwiązania. Jak ustawić trasę i ustawić wartość domyślną, ponieważ sort = 3 jest opcjonalne? – pistacchio
Z powodu konwencji dotyczącej konfiguracji, należy pamiętać, że parametry dla danej metody MUSZĄ być nazywane odpowiednio "id" i "sort". –
W MVC 2 możesz użyć UrlParameter.Optional iw parametrze akcji użyć 'int? id' zamiast "int id", jeśli chcesz, aby był opcjonalny, a '/ Comments/Search', aby pokazać domyślny interfejs wyszukiwania z pustym tekstem wejściowym. – CallMeLaNN