zoukankan      html  css  js  c++  java
  • 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" })

  • 相关阅读:
    SAP程序代码中RANGE表的用法注意点
    代码审计学习-1
    应用层隧道之HTTP/HTTPS和DNS
    应用层隧道技术之SSH
    横向移动-常用windows连接和相关命令
    基于MSF的路由转发
    渗透过程中的边界突破(内部分享笔记)
    网络层隧道之PowerCat
    网络层隧道之lcx和nc的使用
    网络层隧道构建之PingTunnel
  • 原文地址:https://www.cnblogs.com/shawnhu/p/8404680.html
Copyright © 2011-2022 走看看