У меня есть следующие маршруты в моем приложении ASP.NET MVC:ASP.NET MVC4 «хочет» хвостохранилище слэш для моего пользовательского маршрута
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "AppCode",
url: "AppCode",
defaults: new { controller = "AppToken", action = "AuthenticateUser", authCode = UrlParameter.Optional }
);
routes.MapRoute(
name: "ReplayFileRoute",
url: "Replays/{replayName}/{fileName}",
defaults: new { controller = "Replay", action = "GetReplayFile" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Проблема заключается в том, что в настоящее время следующий URL будет вызывать 404, и -действие "GetReplayFile" не должны быть выполнены:
http://localhost:59174/Replays/kgm3eauw.zbg/raha5qit.ikp.pls
Однако следующий URL работы:
http://localhost:59174/Replays/kgm3eauw.zbg/raha5qit.ikp.pls/
Так что, когда я добавить хвостохранилища слэш, ASP выбирает правильный маршрут, иначе это не делает. Добавление косой черты в данный момент не является опцией, поскольку URL-адреса будут сгенерированы внешним скриптом. Я прохожу только
http://localhost:59174/Replays/kgm3eauw.zbg/
к скрипту, фактическое имя файла будет сгенерировано скриптом - без косой черты.
Так что мой вопрос: как мне сделать первый URL-адрес для вызова «правильного» метода?
Также: Есть ли какая-либо документация о том, как работает RouteConfig? Я пока не нашел много.
[Документация для MVC маршрутизации] (https://msdn.microsoft.com/en-us/library/cc668201.aspx) – NightOwl888