Это точно правильно, потому что компилятор должен знать, какой тип он предназначен для распределения. Поэтому классы шаблонов, функции, перечисления и т. Д. Должны быть реализованы также в файле заголовка, если он должен быть опубликован или частично из библиотеки (статический или динамический), поскольку файлы заголовков НЕ скомпилированы в отличие от файлов c / cpp, которые находятся. Если компилятор не знает, что тип не может его скомпилировать. В .Net это возможно, потому что все объекты происходят из класса Object. Это не .Net.
Я предпочитаю: / Комментарии / Поиск / 3? Сортировать = автора. Строка запроса - хорошее место для передачи программных параметров, особенно если параметр (как в этом случае) не важен для целей SEO. Если бы параметр имел некоторое семантическое значение в качестве поискового запроса, первый URL был бы лучше.
В методе контроллера вы можете использовать что-то вроде этого:
public ActionResult Search(int id, string sort)
ASP.NET MVC автоматически соединит значения строки запроса с параметрами вашего метода.
Используйте следующий маршрут
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Comments", action = "Search", id = "" } // Parameter defaults
);
/ Комментарии / Поиск / 3? Sort = author вызовет Поиск (3, «автор»)
/ Comments / Search / 3 вызовет Search (3, null)
Имейте в виду, что id обязателен, поэтому этот URL не будет работать: / Comments / Search
ASP.NET MVC будет обрабатывать это автоматически в случае строки запроса. Вы просто добавляете параметр string sort
к своему действию.
Что лучше? Лично я использую путь для управления отображаемым содержимым и строку запроса для управления представлением (как оно отображается, форматируется, ...). Итак, для сортировки я бы пошел с методом строки запроса. Но я не думаю, что есть технический недостаток в любом подходе.
Лучше всего добавить правило маршрутизации для его обработки. Здесь есть удобная статья:
http://aspalliance.com/1525_ASPNET_MVC_Framework_Part_2_URL_Routing.2
Тогда ваш URL будет выглядеть так: / Комментарии / Поиск / 3 / Сортировка / Автор