Это «особенность» MVC, что многие люди считают неестественным и was previously reported as a bug
официальный ответ от Microsoft:.
В конечном счете, если вы хотите получить максимальный контроль над тем, что генерируется для URL-адреса, необходимо рассмотреть несколько вариантов:
- использовать именованные маршруты, чтобы гарантировать, что только маршрут вы хотите привыкнет для генерации URL (часто это хорошая практика, хотя это не поможет в данном конкретном случае)
- Укажите все параметры маршрута явно - даже значения, которые вы хотите быть пустыми. Это один из способов решения этой конкретной проблемы.
- Вместо использования маршрутизации для создания URL-адресов вы можете использовать ~/синтаксис Razor или вызвать Url.Content ("~/someurl"), чтобы гарантировать, что никакая дополнительная (или неожиданная) обработка не будет выполняться с URL-адресом, который вы пытаетесь генерировать.
На самом деле, эта ошибка только поднимает свою уродливую голову, когда вы пытаетесь повторно цель действие имя метода. Если вы используете другое имя метода действий, отличное от Edit
, в случае, если за ним не следует id
, эта проблема будет волшебным образом исчезнуть.
Зачем вам нужен код контроллера? –
Вы не хотите, чтобы id в url был прав? –