MVC Area Usage

4378 ワード

ASP.NET MVC Area操作

  • 新規Area:右クリック->Add->Area
  • AreaRegistrationを継承し、AreaNameプロパティとRegisterAreaメソッドを書き換える
    public class BookStudyAreaRegistration : AreaRegistration
    
    {
    
        public override string AreaName
    
        {
    
            get
    
            {
    
                return "BookStudy";
    
            }
    
        }
    
    
    
        public override void RegisterArea(AreaRegistrationContext context)
    
        {
    
            context.MapRoute(
    
                "BookStudy_default",
    
                

    "BookStudy/{controller}/{action}/{id}"
    ,             new { action = "Index", id = UrlParameter.Optional }
    
            );
    
        }
    
    }

  • (添付:一般的なルーティングマッピング)
    public class RouteConfig
    
    {
    
        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[] { "MyKB.Controllers" }
    
            );
    
        }
    
    }

    注意と
    RegisterAreaのurlパラメータを比較すると、「BookStudy」、すなわちAreaNameが1つだけ増えています.--これもアーアを
    サブステーションの原因.
  • GlobalにこのAreaを登録する
    protected void Application_Start()
    
    {
    
        AreaRegistration.RegisterAllAreas();
    
    
    
        WebApiConfig.Register(GlobalConfiguration.Configuration); // here
    
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    
    }

  • 以上のすべてのステップは、VS 2013またはVS 2012で自動的に生成される.