Подтвердить что ты не робот

ASP.NET MVC: маршрутизация URL-адресов против querystring

У меня есть страница, маршрутизируемая как /Comments/Search/3, где я просматриваю и отображаю все комментарии потока "3".

Я добавляю функцию сортировки (по дате, автору и т.д.). Каков наилучший способ справиться с этим? /Comments/Search/3/Sort/Author или /Comments/Search/3?sort=author?

Как автоматически обрабатывать сортировку querystring sort = author как параметр в MVC?

Спасибо

4b9b3361

Ответ 1

Я предпочитаю:/Комментарии/Поиск/3? sort = author. Запросы являются хорошим местом для передачи программных параметров, особенно если параметр (как в этом случае) не важен для целей 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 = автор вызовет Search (3, "author" )

/Комментарии/Поиск/3 вызовет Search (3, null)

Имейте в виду, что идентификатор является обязательным, чтобы этот URL-адрес не удался: /Комментарии/Поиск

Ответ 2

ASP.NET MVC будет обрабатывать это автоматически в случае строки запроса. Вы просто добавляете к своему действию параметр string sort.

Что лучше? Лично я использую путь для управления отображаемым содержанием и запросом для управления презентацией (как она отображается, отформатирована,...). Итак, для сортировки я бы пошел с методом querystring. Но я не думаю, что есть технический недостаток в любом подходе.

Ответ 3

Лучше всего добавить правило маршрутизации для его обработки. Здесь есть удобная статья:

http://aspalliance.com/1525_ASPNET_MVC_Framework_Part_2_URL_Routing.2

Затем ваш URL-адрес будет читать/Комментарии/Поиск/3/Сортировка/Автор