Tôi có một ứng dụng web MVC 4 bao gồm một số khu vực. Tôi gặp sự cố với các quy tắc định tuyến của một khu vực có tên "Catalogue". Các tập tin RouteConfig.cs là:AreaRegistration.RegisterAllAreas() không đăng ký quy tắc cho khu vực
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 },
);
}
và Global.asax như sau:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Và CatalogAreaRegistration là một cái gì đó như thế này:
public class CatalogAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Catalog";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Catalog_default",
"Catalog/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
Vấn đề là khi tôi gỡ lỗi, RouteCollection các tuyến đường không bao gồm các quy tắc được xác định trong khu vực. Tôi đã sử dụng bộ định tuyến và thấy rằng bộ sưu tập tuyến đường không bao gồm các quy tắc của khu vực "Danh mục". Nó chỉ có các quy tắc trong RouteConfig.
Tôi không biết vấn đề là gì. Cảm ơn trước.
gì nếu bạn thêm 'khu vực = "Catalog" 'để giá trị mặc định của' gọi MapRoute' trong 'phương pháp RegisterArea'? – asymptoticFault
@asymptoticFault tôi đã thử nhưng nó không quan trọng kể từ khi quy tắc trong RegisterArea, không tồn tại trong các tuyến đường toàn cầu. – atakanozgun
Nói cách khác, nếu tôi thêm một điểm ngắt trong phương thức RegisterArea, nó sẽ không bao giờ chạm. Tuy nhiên, AreaRegistration.RegisterAllAreas() được gọi bên trong global.asax – atakanozgun