ASP.Net MVC путаница маршрутов - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть следующие URL для моего сайта ASP.Net MVC 2:

http://localhost:1919/TimeEntry/SummaryForWeek/15/2011

http://localhost:1919/TimeEntry/SummaryForMonth/4/2011

Оба они идут по этому маршруту:

            routes.MapRoute
        (
            "TimeEntryActionMonthYear", // Route name
            "TimeEntry/{action}/{month}/{year}", // URL with parameters
            new { controller = "TimeEntry", action = "Summary", month = UrlParameter.Optional, year = UrlParameter.Optional } // Parameter defaults
        );

Действие для SummaryForWeek ожидает параметр с именем "weekNumber" (значение 15 в URL-адресе выше), тогда как используемый маршрут передает параметр с именем "month", и, следовательно, URL-адрес для weekSummary не выполняется. Не имеет смысла переименовывать параметр для SummaryForWeek от недели к месяцу только для того, чтобы маршрут работал.

Должен ли я добавить маршрут в таблицу маршрутов, где {action} жестко задан для "SummaryForWeeks"? Это также не имеет смысла, так как увеличивает размер таблицы маршрутов.

Что я не понимаю (я знаю, что это открывает мне некоторые творческие комментарии)? Я застрял.

Спасибо

Том

1 Ответ

1 голос
/ 15 апреля 2011

Вам либо нужны два маршрута, либо вам нужно более общее имя для ваших параметров:

TimeEntry/{action}/{subdivision}/{year}

или что-то подобное.Тогда оба действия должны будут принять эти два параметра, один будет интерпретироваться как месяц, а другой - как неделя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...