最初のルートが 2 番目のルートでスキップされるのはなぜですか? 最初のルートには 2 番目のルートの基本コントローラー クラスがあるため、ウィジェットはイベントを継承しますが、イベントの「登録」メソッドがヒットし続けます。
URL
Widgets/v1/RegistrationWidget?eventid=3762
ルート
routes.MapRouteLowercase(
"DefaultWidget",
"widgets/v{version}/{action}widget",
new { controller = "Widgets", action = "NotFound", version = 1, slug="event" },
new { version = @"\d+" }
);
routes.MapRouteLowercase(
"NamedEvent",
"{Id}/{slug}/{action}",
new { controller = "Event", action = "Index", slug = "event" },
new { Id = @"\d+" }
);
ウィジェットコントローラー
public partial class WidgetsController : EventController
{
public virtual ActionResult RegistrationWidget(int version, int? eventId, string slug, int? divisionTeamId = null, int? divisionId = null)
{
return GetRegistration(eventId, divisionId, divisionTeamId, new WidgetRegistrationViewModel(version));
}
イベントコントローラー
public partial class EventController : SiteController
{
public virtual ActionResult Registration(int? id, string slug, int? divisionTeamId = null, int? divisionId = null)
{
return GetRegistration(id, divisionTeamId, divisionTeamId, new EventRegistrationViewModel());
}