У меня есть маршрут в моем ASP.NET MVC 2-сайт, который выглядит, как этотмаршрутизации проблема с - в переменной
routes.MapRoute(
"media_display",
"Media/{mediaId}-{mediaName}",
new { controller = "Media", action = "Display" },
new { mediaId = @"\d+" }
);
Где MediaId это идентификатор, и MEDIANAME это название СМИ. Пример
www.example.com/Media/1-test-media-list
Если идентификатор 1, а название «список тестов СМИ», проблема здесь что я заменяю пространство «» на -, и это разрушает мой маршрут.
Я просто не могу понять, как это сделать, поэтому «mediaName» может содержать.
У меня также есть следующая версия, но решение должно быть одинаковым.
routes.MapRoute(
"media_display",
"Media/{mediaId}-{mediaName}/edit",
new { controller = "Media", action = "Edit" },
new { mediaId = @"\d+" }
);
Также можно сделать маршрут, который будет ловить все следующие 3 exampels, прямо сейчас я просто есть 3 различных маршрутов, но я хотел бы сократить это вниз.
www.example.com/Media/1-test-media-list
www.example.com/Media/1-
www.example.com/Media/1
Я бы сказал, что www.example.com/Media/1-test-media-list является самым элегантным: D Сульоция слизняка нарушит создание URL-адресов, где я использую Html.Action («Дисплей», «Медиа», новый {mediaId = 1, mediaName = "Some Name"}); Но если никто не сможет мне помочь с помощью {mediaId} - {mediaName} sulotion, я буду использовать {mediaId}/{mediaName} – Androme
. Раньше у меня было свойство, которое возвращало сгенерированный slug в моей модели представления, когда я использовал это , Тогда у вас будет Html.Action («Дисплей», «Медиа», новый {slug = Model.MediaSlug}). Но я все еще думаю, что/id/name лучше. Смотри! Даже SO использует его;) – Necros
Я использовал решение id/name – Androme