我有一个MVC应用程序如下:
Application
Controllers
HomeController
ActionResult Index();
Areas
IT
Controllers
ITHomeController
ActionResult Index();
我已将链接设置为在主应用程序和IT区域之间正常工作。
在网址中,指向IT区域的链接显示为http://localhost/IT/ITHome。 链接的代码是:
@Html.ActionLink("IT Page","Index","ITHome", new { area = "IT" }, null)
我如何将网址简单地http://localhost/IT我确定这很简单。
谢谢!
答案 0 :(得分:3)
public override void RegisterArea(AreaRegistrationContext context)
方法中添加路线映射,最好是在该区域的默认路线的最顶部或至少之前。类似的东西:
context.MapRoute(
"default_IT",
"IT",
new { action = "Index", controller = "ITHome" },
new[] { "YourAppNamespaceHere.Areas.IT.Controllers" }
);
<a href="/IT">IT Home</a>
并完成它,除非你将其作为wwwroot的子应用程序托管,你应该没事。通过这种方式,您可以将您的区域路线与正常路线分开。
答案 1 :(得分:1)
将ITHomeController
重命名为HomeController
可能会给您带来模糊匹配。
您可以更改已注册的路线映射,例如如果区域匹配ITHOME
,则添加一个IT
作为默认控制器的新路由。
routes.MapRoute(
"ITHome",
"IT/{controller}/{action}/{id}",
new { area = "IT", controller = "ITHome", action = "Index", id = UrlParameter.Optional }
);
然后,仅针对IT
区域,它将允许默认控制器为您的ITHomeController
。