url.Action (контроллер, действие) не маршрутизируется, как ожидалось - PullRequest
2 голосов
/ 02 марта 2012

В моем ASP.NET MVC 3 я использую этот код

<a href=@url.Action("myController", "myaction")>

Но когда я нажимаю на него, это не идет к моим действиям. Вместо этого в URL я вижу это

http://localhost:1402/?Length=2

Я что-то упустил?

Спасибо.

Редактировать:

Вот мои маршруты:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

    }

Ответы [ 4 ]

8 голосов
/ 02 марта 2012

первый аргумент интерпретируется как Действие

@url.Action("myaction","myController")
3 голосов
/ 02 марта 2012

Подпись Url.Action:

Url.Action(string actionName, string controllerName)

Согласно вашему коду, порядок ваших параметров неверен, попробуйте:

@Url.Action("myAction", "myController")

Также помните, что для удаления части «Контроллер» контроллера, например, если у меня есть CustomerController с действием Index, которое будет выглядеть так:

@Url.Action("Index", "Customer")
1 голос
/ 25 апреля 2013

У меня была такая же проблема ... Мое решение:

@Html.ActionLink("Link text", "myAction", "myController", new { id=item.ID }, null)

Просто добавление нуля к последнему параметру.

0 голосов
/ 25 декабря 2013

Для действия по умолчанию (действие, которое не определено в маршруте), обычный HTTP GET автоматически перейдет к, вам просто нужно использовать null action.

@Url.Action (null, «Заказчик»)

...