Проблема со ссылкой действия и областями в проекте asp mvc - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть одна область Area1 с контроллером Home, и это Index метод.
Я также создал еще одну область Area2 с контроллером Home и это метод Index.
В Area1 у меня есть ссылка действия, которая должна открыть страницу Index в Area2.

@Html.ActionLink("Link to another area index", "Index", "Home", new { area = "Area2" }, null)

Но когда я нажимаю на эту ссылку, она сначала переходит на Area1/Home/Index!
Почему это происходит. Это должно быть так или оно может перейти прямо к Area2/Home/Index?
Это делает меня проблемой, потому что в Area1 / Home / Index мне нужны некоторые параметры, и когда это происходит, этот оценщик нулевой или неправильный и создает мне проблему Я должен сделать что-то не так. Обновить Area1 маршрутизация

public override void RegisterArea(AreaRegistrationContext context)
        {
            context.Routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

            context.MapRoute(
                "Area1_home",
                "{country}/{city}",
                new { controller = "Home", action = "Index", country = UrlParameter.Optional, city = UrlParameter.Optional }
            );

            context.MapRoute(
                "Area1_default",
                "Area1/{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

Маршрутизация Area2:

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

1 Ответ

1 голос
/ 11 февраля 2012

Попробуйте:

Html.ActionLink("Link to another area index", "Index", "Home", new { Area = "Area2" }, new{});
...