我遇到了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下。
答案 0 :(得分:2)
如果您从区域中的视图使用Html.ActionLink,则默认情况下它会将区域传递到该链接。
要覆盖它,您可以像这样调用Html.ActionLink:
@Html.ActionLink("linkText", "actionName", "controllerName", new {Area = "AreaName"}, null);
其中'new {Area =“AreaName”}'是路径对象值 'null'是html属性。
因此,您可以使用'new {Area =“”}'