首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC 2.0 Area 功能:大型專案目錄結構最佳實踐

     編輯:關於ASP.NET

痛點:單一 Views 目錄膨脹

專案增長導致 Views 目錄下 Controller 文件夾爆炸:

Views/
  Home/ Account/ Product/ Order/ Admin/ Report/ Settings/ ...

URL 也不美觀:/Admin/Index 實際映射 /Views/Admin/Index.aspx,缺乏模塊隔離。

Area 解決方案

添加 Area 目錄結構

生成結構

Areas/
  Admin/
    Controllers/
      HomeController.cs
      UserController.cs
    Views/
      Home/ Index.aspx
      User/ List.aspx
    Models/
    AreaRegistration.cs  // 路由註冊
  Frontend/
    ...

AreaRegistration 自動路由

public class AdminAreaRegistration : AreaRegistration {
    public override string AreaName => "Admin";
    
    public override void RegisterArea(AreaRegistrationContext context) {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            new[] { "MyProject.Areas.Admin.Controllers" } // 命名空間約束
        );
    }
}

// Global.asax 統一註冊
AreaRegistration.RegisterAllAreas();

URL 效果

  • /Admin/Home/Index → Admin 區域
  • /Frontend/Product/Detail/123 → Frontend 區域
  • 區域間鏈接:@Html.ActionLink("後台", "Index", "Home", new { Area = "Admin" }, null)

最佳實踐

  1. 按業務域劃分 Area(Admin、API、Mobile、Frontend)
  2. 共用模型/服務放在根目錄或 Core 類庫,Area 僅含表現層
  3. 命名空間嚴格對應 Area,避免 Controller 名稱衝突
  4. 靜態資源 (CSS/JS/Images) 考慮統一管理或各 Area 獨立
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved