asp mvc项目中的操作链接和区域问题

时间:2012-02-10 20:33:00

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing asp.net-mvc-areas

我有一个区域Area1,其中包含控制器HomeIndex方法。
我还创建了另一个区域Area2,其中包含控制器HomeIndex方法。
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中我需要一些参数,当发生这种情况时,这个值为null或者错误并且让我有问题。我一定做错了。 更新 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 个答案:

答案 0 :(得分:1)

尝试:

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