asp.net mvc2 Как мне использовать Actionlink, чтобы перейти с корня прямо на страницу с подробностями? - PullRequest
0 голосов
/ 04 июля 2010

На корневой странице в моем проекте у меня есть несколько разных страновых сервисов, собранных по категориям на одной странице.Категория - это страница «Указатель» в папке «Просмотр» в отдельной области, а конкретная служба - представление «Сведения».Я хочу, чтобы пользователь мог прыгнуть прямо через категорию в (в данном случае в Китае) области к этой конкретной детали услуги.

У меня есть это:

<%=Html.ActionLink("More Info", "Details", "ParticularChinaServiceControllerName", new { area = "China" }, new { id = p.ID })%>

, но структуране получит идентификатор.

Маршрут зарегистрирован как: public override string AreaName {get {return "China";}}

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "China_default",
            "China/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }
}

Может кто-нибудь показать мне, как заставить это работать правильно?

1 Ответ

1 голос
/ 04 июля 2010

Измените имя вашего контроллера с «ParticularChinaServiceController» на «ParticularChinaService» и посмотрите, решит ли это проблему.

Подождите, последний аргумент:

new { id = p.Id }

... на самом деле является аргументом htmlAttributes и будет применять этот идентификатор в качестве атрибута гиперссылки, сгенерированной в html. Измените предыдущий аргумент на это:

new { area = "China", id = p.Id }

И отбросить последний аргумент (если только вам не нужно применять некоторые специфические атрибуты на стороне клиента).

...