• ASP.NET MVC Area 区域


      大型网站或项目通常有很多子系统或功能模块,如大型网站可能包含酒店、旅游、机票子系统,通过二级域名来访问,或者一个网站的前台和后台模块,每个团队负责某一子系统或模块,为了各团队进行协同开发,我们可以分不同的MVC项目,或使用区域Area进行隔离,Ares相当于一个大项目中的独立小项目,每一个Area都有独立的Controller,View文件结构,互不影响,易于项目维护和管理。

      路由注册时候为了避免相同控制器和Action冲突,要定义命名空间。例如区域中和默认的都有HomeController的Index方法,如果不定义命名空间,会找到两个匹配的结果,会报错误。 

    public class FlightsAreaRegistration : AreaRegistration 
        {
            public override string AreaName 
            {
                get 
                {
                    return "Flights";
                }
            }
    
            public override void RegisterArea(AreaRegistrationContext context) 
            {
                context.MapRoute(
                    "Flights_default",
                    "Flights/{controller}/{action}/{id}",
                    new { action = "Index", id = UrlParameter.Optional },
                    namespaces: new string[] { "WebApplication2.Areas.Flights.Controllers" }
                );
            }
        }
       routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                    namespaces: new string[] { "WebApplication2.Controllers" }   //一定要告知,这个maproute是寻找哪一个命名空间下面的Controller
                );

       另外,在不同Area间跳转,把Route中的area指定就可以了。

      @Html.ActionLink("Click me to go to another area", "Index", new { area = "Support" })

  • 相关阅读:
    经典的Android案例项目源码
    技术面试(项目经验)
    从零开始搭建架构实施Android项目
    Android 开源项目第五篇——优秀个人和团体篇
    DOM,SAX,JDOM,DOM4J 四种方式解析xml
    Android小项目:记事本
    图像的读取、缩小、保存
    android中获取图片、获取图片像素、处理像素等基础知识
    图像透明化
    Notification应用的复习
  • 原文地址:https://www.cnblogs.com/shawnhu/p/8404680.html
Copyright © 2020-2023  润新知