Как я могу использовать Html.ActionLink, чтобы указать точный URL с MVC3 - PullRequest
3 голосов
/ 28 июня 2011

У меня есть следующий маршрут:

        routes.MapRoute(
            "Power", // Route name
            "Power/{id}", // URL with parameters
            new 
            { 
                controller = "flood", 
                action = "index", 
                id = UrlParameter.Optional 
            }
        );

и следующий адрес, который я вызываю:

<a href="/Power/"  >

Теперь я хотел бы выполнить вышеуказанный вызов с Html.ActionLink, какthis:

@Html.ActionLink("xxx", 
                "index",
                "flood",
                new { "Power" },
                null 
                )

Кажется, это не работает, так как я получаю сообщение об ошибке "Недопустимое объявление анонимного типа", где у меня есть новый {"Power"}.Может кто-нибудь дать мне какой-нибудь совет и направить меня на правильный путь?

Я также хотел бы иметь возможность позвонить по следующей ссылке:

<a href="/Power/001"  >`

спасибо

пс.Обратите внимание, что я использую MVC3.Я понимаю, синтаксис для этого изменился с версии 1> 2> MVC3.

Ответы [ 2 ]

6 голосов
/ 28 июня 2011

Используйте RouteLink вместо ActionLink :

@Html.RouteLink("xxx", "Power", new { id = "123" })

или если вы укажете контроллер и действие с помощью ActionLink и на основе своего порядка определения маршрута, будет выбран правильный маршрут:

@Html.ActionLink("xxx", "index", "flood", new { id = "123" }, null)
0 голосов
/ 28 июня 2011

Проблема в декларации ваших параметров. Это будет хорошо работать:

без ID:

@Html.ActionLink("xxx", 
            "index",
            "flood")

С ID:

@Html.ActionLink("xxx", 
            "index",
            "flood",
            new { id =123 },
            null 
            )

Вы объявляете анонимный тип без указания имени свойства, только значение.

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