zoukankan      html  css  js  c++  java
  • MVC ASP.NET MVC5使用Area区域

    MVC  ASP.NET MVC5使用Area区域

    一.为什么要使用area?

         在大型的ASP.NET mvc5项目中一般都有许多个功能模块,这些功能模块可以用Area(中文翻译为区域)把它们分离开来,比如:Admin,Customer,Bill。ASP.NET MVC项目中把各个功能分为不同Area的之后每一个Area都有独立的Controller,View文件结构。这样可以把这些功能分给不同的开发者同时开发而彼此之间不会冲突,这样的文件结构各司其职,直观明了,易于维护和管理。下面我们看看怎么在ASP.NET MVC5中创建一个Area和Area直接之间链接的处理。        (Mvc 2.0版本引入area的。)

    二.配置:

    我们来看这个Area是怎么在项目的起作用的。

    我们来看Global.asax.cs的代码:

      public class Global : HttpApplication
        {
            void Application_Start(object sender, EventArgs e)
            {
                AreaRegistration.RegisterAllAreas();
                BootStrapper.ConfigureDependencies();
                GlobalConfiguration.Configure(WebApiConfig.Register);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
            }
        }
    

     第一行的代码:AreaRegistration.RegisterAllAreas();就是注册 ASP.NET MVC 应用程序中的所有区域。每一个区域它有自己的都有独立的Controller,View文件结构和路由配置,我们完全可以把ASP.NET MVC的区域看成一个ASP.NET MVC项目。

    在ASP.NET MVC5的每个区域都有一个类:区域名+AreaRegistration,比如BaseManage区域:

    public class BaseManageAreaRegistration : AreaRegistration 
        {
            public override string AreaName 
            {
                get 
                {
                    return "BaseManage";
                }
            }
    
            public override void RegisterArea(AreaRegistrationContext context) 
            {
                context.MapRoute(
                    "BaseManage_default",
                    "BaseManage/{controller}/{action}/{id}",
                    new { action = "Index", id = UrlParameter.Optional }
                );
            }
        }

    这个类的作用主要是用于标示区域名称和区域Controller的路由,可以看到路由规则为"BaseManage/{controller}/{action}/{id}",前面统一跟了一个BaseManage。

    三.在Area区域的视图之间Action的链接跳转是如何处理?

    1.同一个区域跳转:

    @Html.ActionLink("Click me", "About")

    2.不同区域跳转:

    @Html.ActionLink("Click me", "About",new { area = "Support")

    3.调整到无区域:

    @Html.ActionLink("Click me", "About",new { area = "")

  • 相关阅读:
    Android 编译命令 make j8 2>&1 | tee build.log 解释
    Linux时间函数之gettimeofday()函数之使用方法
    转:RSA算法原理说明
    转: 各个密码算法的实现(未验证)
    转:修改Android签名证书keystore的密码、别名alias以及别名密码
    转:Eclipse ADT的Custom debug keystore所需证书规格
    转:如何转换Android打包用jks格式keystore证书为Air用pkcs12格式p12证书
    转: 关于流量控制与令牌桶介绍
    转:sublime2 官方网址
    转:Mac OS X下Sublime Text (V2.0.1)破解
  • 原文地址:https://www.cnblogs.com/zlp520/p/9014118.html
Copyright © 2011-2022 走看看