在MVC项目上右键->新建->区域(Areas)...,将会自动生成Areas文件夹,并在文件夹下创建Model+Controller+View的mvc框架。在Views文件夹中,自动生成web.config,同时在父文件夹下自动生成xxxAreaRegistration.cs文件。如图:

在testAreaRegistration.cs里面自动生成对当前区域的路由规则。为了避免此路由规则和默认的App_Start下面的RouteConfig.cs里面的default路由规则相冲突,最好在两个规则中添加namespace参数:

在Global.asax的Application_Start()函数下面添加一行:AreaRegistration.RegisterAllAreas();

protected void Application_Start()
{AreaRegistration.RegisterAllAreas();FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);
}

如此,Areas拆分管理实现。

但是,在实际应用中,项目有身份验证。而所有的View全部使用相同的布局。那么,问题来了,在进入Area下面的窗口后,再点击上面的_Layout菜单,可以看到所有的链接全部变成Area下面,刚才点击的那个窗口的了。例如Log Off的链接变成:

这个时候,我们需要修改Share文件架下面的布局文件。

<div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button>@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
</div>
<div class="navbar-collapse collapse"><ul class="nav navbar-nav"><li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, null)</li><li>@Html.ActionLink("About", "About", "Home",  new { area = "" }, null)</li><li>@Html.ActionLink("Contact", "Contact", "Home",  new { area = "" }, null)</li>@if (Request.IsAuthenticated && User.IsInRole("Admin")){<li>@Html.ActionLink("RolesAdmin", "Index", "RolesAdmin",  new { area = "" }, null)</li><li>@Html.ActionLink("UsersAdmin", "Index", "UsersAdmin",  new { area = "" }, null)</li>}</ul>@Html.Partial("_LoginPartial")
</div>

带红色下划线处,为新添加的RouteValue。

转载于:https://www.cnblogs.com/icyJ/p/4260487.html

15.01.29-MVC中用Areas分解项目相关推荐

  1. 01 | 使用Gradle构建多模块项目

    系列文章目录 01 | 使用Gradle构建多模块项目 02 | 架构师必备 - DDD领域驱动设计之落地实践 03 | 异常处理实践 - 抛异常+错误码 从今天开始,我将从无到有的搭建一套基于 Sp ...

  2. Spring MVC中获取当前项目的路径

    Spring MVC中获取当前项目的路径 在web.xml中加入以下内容 <!--获取项目路径--><context-param><param-name>webAp ...

  3. 2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学、机

    2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学.机 ...

  4. 洛谷 刷题 深基部分题解(python版)-2022.01.29

    P5703 [深基2.例5]苹果采购(python3实现) https://blog.csdn.net/dllglvzhenfeng/article/details/122690555 P5703 [ ...

  5. 15.01万起!全新威马E.5上市:505公里长续航

    4月15日消息,威马宣布正式上市智能纯电家轿--全新威马E.5.全新威马E.5是行业首款以用户思维为导向开发的智能纯电家轿,也是行业首款开启高配即标配的车型.其颠覆了大部分车企高配即选配的传统产品思维 ...

  6. 真实创业故事:我在15平的出租房里死磕项目!

    刚来深圳的时候,一个炒粉才3元钱 一个大的快餐盒装着,分量很大,大到能把我一个年轻的小伙子吃撑. 在龙华一个12-15平大小的出租房一个月房租是350元,带个洗手间,一个网费是50元,不含水电.楼房与 ...

  7. 海涛师兄指的路--指点汇总--各种装逼利器---15.01.27

    14.11.10--科学楼226 C primer plus 代码敲两边 许英杰老师 ---------------------------- www.gfsoso.com谷粉搜搜 正点原子.安富莱( ...

  8. Tue Jun 28 2022 15:30:29 GMT+0800 (中国标准时间) 日期格式化

    1. Tue Jun 28 2022 15:30:29 GMT+0800 (中国标准时间) 转换为 2022-06-28 15:30:29 代码如下 const d = new Date(Tue Ju ...

  9. qt5.15.2-银河麒麟-龙芯国产化-项目打包踩坑实录

    qt5.15.2-银河麒麟-龙芯国产化-项目打包踩坑实录 linuxdeployqt几乎是唯一解决方案,网上各种自己写脚本根据ldd去拷贝的,最后大概率都是segment default-除非你是纯Q ...

最新文章

  1. Apache下实现禁止目录浏览
  2. HTML5 手写板签名
  3. Django--models一对多实例
  4. Mybatis加入Ehcache支持
  5. Project Tungsten:让Spark将硬件性能压榨到极限
  6. python快速安装pip
  7. Layui中Jquery动态设置的select标签加载时而正常时而失效问题排查和解决
  8. 6a标准 api_【阀门标准】API SPEC 6A CHINESE-2010中文版.pdf
  9. mysql数据意外删了怎么办_MySQL数据库意外崩溃导致表数据文件损坏无法启动怎么办...
  10. python socket服务器_python网络编程学习笔记(三):socket网络服务器
  11. C++的const限定符
  12. 奉劝那些想学编程的人
  13. vue项目创建步骤 和 路由router知识点
  14. 倾斜模型精细化处理_【干货】7款倾斜摄影三维模型修补的软件介绍
  15. 为癌症医生提供最匹配的医学文献,达摩院精准医学搜索引擎TREC PM 2020评测夺冠...
  16. 苹果cmsv10精仿好看的挖片网免费自适应简约模板
  17. opencv mat与cvmat, iplimage转换
  18. 【C语言每日练习】——3.回文数、特殊回文数(三种方法详解)
  19. 极兔快递 | 快递单号查询API
  20. 原子互换:一统公链江湖的神来之笔

热门文章

  1. 如何修改Windows 7登录界面默认输入法?
  2. 【专题三】如何考量虚拟化的投资回报率?——服务器虚拟化的阴暗面
  3. 深入一步研究DNS服务器
  4. Paradigm此前投资Uniswap的资金价值或超30亿美元
  5. SAP License:PS模块WBS预算更改
  6. powerdesigner导出mysql数据库表结构到Excel
  7. 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点
  8. SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
  9. 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序
  10. Java基础——TreeSet