我们在ASP.NET MVC5中使用AttributeRouting来定义路径。
现在我们有“管理员”区域,一个是外部区域,即用于前端站点
我不想在路线中使用/ admin。
我的问题是,如何在网址中隐藏区域,以便我可以调用
mywebsite.com/home/1
而不是
mywebsite.com/Admin/Home/1
我找到了解决方法但是如果我在区域和外部区域有控制器名称,即“Home”,那么它将无法工作,因为它会使路由混乱。
因此,在区域和外部使用相同的控制器名称,如何在Url中隐藏我的区域名称。
主要Routeconfig.cs
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" },
new[] { "application.Controllers" }
);
AdminAreaRegistartion.cs
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
区/管理员/控制器
[RouteArea("Admin")]
[RoutePrefix("")]
public class HomeController : Controller
{
//...
}