Путаница и Url помощники путаница - PullRequest
1 голос
/ 23 августа 2011

Я немного запутался на фронте MVC, поэтому у меня определен следующий маршрут по умолчанию;

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

Когда я использую помощник по URL, то есть

@Url.Action("MyAction")

генерирует этот URL;

/?action=MyAction&controller=MyController

и никогда не находит мой метод действия. Как URL генерируются помощниками и как мне это исправить?

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Просто используйте перегрузку, чтобы указать действие и контроллер:

@Url.Action("MyAction", "MyController")

Если вы используете перегрузку, которая принимает только имя действия, контроллер берется из данные текущего маршрута .Маршрутизация по умолчанию не входит в это.

т.е.

@Url.Action("MyAction")

эквивалентно

@Url.Action("MyAction", (string)ViewContext.RouteData.Values["controller"])

0 голосов
/ 06 декабря 2011

У меня была та же проблема, у меня было веб-приложение, которое было построено с использованием веб-форм и медленной миграции частей в MVC, для поддержки обоих у меня была запись маршрута, которая в итоге нарушила код оценки маршрутизации и вызвала забавные URL-адреса действий

это сообщение в блоге исправил мою проблему

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