MVC Area 技術的使用

 

此文章經由 step by step 來介紹如何使用Area技術。

 

於專案按右鍵來加入Area

 

Area name 就以「MyArea」為範例

 

當建好 Area 時,會生成 Areas 底下資料夾

 

來看一下 MyAreaAreaRegistration.cs 裡的內容

using System.Web.Mvc;

namespace WebApplication1.Areas.MyArea
{
    public class MyAreaAreaRegistration : AreaRegistration
    {
        public override string AreaName
        {
            get
            {
                return "MyArea";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "MyArea_default",
                "MyArea/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

 

於 MyArea 底下新增一個 DefaultController

 

其 DefaultController 的 Action 名為 Index,所對應的 View 也一併新增

 

來看 MyArea 底下的 _Layout.cshtml

 

會發現這一段

@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })

其 routeValues 為 new { area = "" } 表示此連結會連出去到如 http://localhost:44316/Home/Index

另外,如何外面連到area裡面的頁面呢?

則應該改成如下樣式

@Html.ActionLink("Application name", "Index", "Default", new { area = "MyArea" }, new { @class = "navbar-brand" })

就可連到 http://localhost:44316/MyArea/Default/Index

 

使用區域技術的網頁成功畫面如下

 

有關 Area 的使用還有另一篇延伸文章 MVC Area技術的使用-同名Controller處理方法