У меня проблема с моей конфигурацией маршрута (MVC 5). У меня есть несколько маршрутов с одной и той же сигнатурой параметра (такое же количество параметров и тип параметра).MVC route config same url paramater подпись
В нижеследующем коде настройки конфигурации 2 - это болтовые головки. Нормальные сообщения обратно на сервер должны получить путь по умолчанию внизу, но вместо этого захватить тот, который посередине, из-за той же самой сигнатуры.
Я не могу найти способ сделать средний из уникальных по умолчанию в нижней части. Мне все еще нужен средний, чтобы иметь только те 2 строки (action и gameHtmlAbbr).
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: null,
url: "{gameConsoleHtmlAbbr}",
defaults: new { Controller = "Game", action = "GameList", gameConsoleHtmlAbbr = (string)null }
);
routes.MapRoute(
name: null,
url: "{action}/{gameHtmlAbbr}",
defaults: new { Controller = "Game", action = "Snes", gameHtmlAbbr = (string)null }
);
routes.MapRoute(
name: null,
url: "{controller}/{action}",
defaults: new { controller = "Game", action = "GameList" }
);
}
}
2-й и 3-й из них имеет 2 сегмента, поэтому все, что имеет 2 сегмента, будет соответствовать 2-м. Вы можете сделать 2-й (скажем) 'url:« Snes/{gameHtmlAbbr} ', поэтому его уникальный, и'/Snes/someThing' будет соответствовать второй задаче –
. Я имею несколько методов действий, которые используют второй. Например, Genesis/{gameHtmlAbbr} и т. д. Должен ли я выполнять отдельные маршруты для каждого метода действий? – mgmedick
В таком случае вам понадобится конкретный маршрут для каждого метода. –