У меня есть календарь на www.server.com/events/calendar. Строка запроса к событию выглядит как www.server.com/events/calendar/seofriendly-event-query-string. Но пользователи могут выбирать события по годам и месяцам с помощью выпадающих списков, поэтому mu-запрос становится www.server.com/events/calendar/2013 или даже www.server.com/events/calendar/2013/12. Поэтому проблема заключается в том, когда я нажимаю на www.server.com/events/calendar/seofriendly-event-query-string, я получил www.server.com/events/calendar. Как организовать мои маршруты, чтобы они поняли, что мне нужно показать: список или событие?Правильные шаблоны маршрутов в MVC4
0
A
ответ
1
ну я бы добавить пользовательский маршрут, как это:
routes.MapRoute(
"NewRoute", // Route name
"{controller}/{action}/{id}/{another_id}", // URL with parameters
new { controller = "Events", action = "Calendar", id = UrlParameter.Optional, another_id = UrlParameter.Optional } // Parameter defaults
);
Ваш контроллер будет тогда иметь метод действия, как это:
public ActionResult MyAction(string id, string another_id)
{
// in the question you mentioned that a a valid list querystring would contain
// multiple integer parameters, and an event querystring would include a
//seo friendly string
int para;
if (int.TryParse(id,out para))
{
// show list view
}
else
{
//show event view
}
}
вам просто нужно, чтобы получать параметры и запустить какой-то проверки, чтобы определить, собираетесь ли вы показывать событие или список.