asp.net mvc actionlink使用错误的路由

时间:2012-04-07 17:08:40

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

我遇到了html.actionlink的问题。 我定义了两条路线:

routes.MapRoute(
                "AdminDefault",
                "Admin/{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
routes.MapRoute(
                "Default",
                "{controller}/{action}/{id}",
                new { controller = "Page", action = "Details", id = "0" }
            );

当我希望它使用默认控制器时,actionlink正在使用AdminDefault。如何在不使用routelink的情况下使用默认路由?

添加更多信息。我有一个简单的动作(home / index),它显示了一个视图(index.cshtml),在该视图中我有:

@Html.ActionLink("About", "About", "Home")

当我希望它为“/ Home / About”时,会生成一个“/ Admin / Home / About”的网址,默认路由是这样我以后可以创建链接到/ admin / controller / action管理页面,但我希望默认生成的网址不在admin下。

1 个答案:

答案 0 :(得分:2)

如果您从区域中的视图使用Html.ActionLink,则默认情况下它会将区域传递到该链接。

要覆盖它,您可以像这样调用Html.ActionLink:

@Html.ActionLink("linkText", "actionName", "controllerName", new {Area = "AreaName"}, null);

其中'new {Area =“AreaName”}'是路径对象值 'null'是html属性。

因此,您可以使用'new {Area =“”}'