根目錄下“Admin”控制器 和 Areas的名也是“admin”該如何訪問根目錄下的admin控制器
問題重點是,區域名和根目錄下的控制品重名了要如何解決,不要告訴我換個名字噢,看有啥解決辦法
RouteConfig.cs檔案內容
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "xxx.WEB.Controllers" } //加了這句可以訪問根目錄下其它控制器。
);
}
這是區域路由下的檔案
AdminAreaRegistration.cs
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "xxx.WEB.Areas.Admin.Controllers" }
);
}
uj5u.com熱心網友回復:
你的路由規則不都寫的很清楚了嗎,根目錄下的就/Controller/Action, Areas目錄下的就/Admin/Controller/Actionuj5u.com熱心網友回復:
一般來講,只要控制器名稱沒有相同的就可以,區域的名稱和控制器名稱相同的影響不是太大uj5u.com熱心網友回復:
區域配置public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
this.AreaName + "_Default",
this.AreaName + "/{controller}/{action}/{id}",
new { area = this.AreaName, controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "XXXXX.Web.Areas." + this.AreaName + ".Controllers" }
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/109123.html
標籤:ASP.NET
