У меня есть вопрос относительно RouteLink и ActionLink.
Рассмотрим следующий маршрут
routes.MapRoute("Routename1",
"{someEnum}/SpecificAction/{id}/{stringId}",
new { controller = "MyController", id = (int?)null, stringId= (string)null, action = "SpecificAction" },
new { someEnum= "(EnumVal1|EnumVal2)" }
);
Странная часть {someEnum} заключается в том, что я использую общий контроллер для всех значений перечисления, которые образуют типичную часть контроллера URL-адреса. Например, / EnumVal1 / Action / и / EnumVal2 / Action / используют один и тот же контроллер. Однако это не является частью проблемы.
Рассмотрим два следующих способа соединения:
<%=Html.RouteLink("Click me","Routename1", new { id = 32, stringId = "Yatzy" })%>
<%=Html.ActionLink("Click me", "SpecificAction", "EnumVal1", new { id = 32, stringId = "Yatsy" }, null)%>
RouteLink генерирует правильный URL-адрес, который будет / EnumVal1 / SpecificAction / 32 / Yatzy
ActionLink генерирует URL, который выглядит как / EnumVal1 / SpecificAction / 32? StringId = Yatzy
Почему это? Может кто-нибудь объяснить это мне, пожалуйста.