15.01.29-MVC中用Areas分解项目
在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分解项目相关推荐
- 01 | 使用Gradle构建多模块项目
系列文章目录 01 | 使用Gradle构建多模块项目 02 | 架构师必备 - DDD领域驱动设计之落地实践 03 | 异常处理实践 - 抛异常+错误码 从今天开始,我将从无到有的搭建一套基于 Sp ...
- Spring MVC中获取当前项目的路径
Spring MVC中获取当前项目的路径 在web.xml中加入以下内容 <!--获取项目路径--><context-param><param-name>webAp ...
- 2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学、机
2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学.机 ...
- 洛谷 刷题 深基部分题解(python版)-2022.01.29
P5703 [深基2.例5]苹果采购(python3实现) https://blog.csdn.net/dllglvzhenfeng/article/details/122690555 P5703 [ ...
- 15.01万起!全新威马E.5上市:505公里长续航
4月15日消息,威马宣布正式上市智能纯电家轿--全新威马E.5.全新威马E.5是行业首款以用户思维为导向开发的智能纯电家轿,也是行业首款开启高配即标配的车型.其颠覆了大部分车企高配即选配的传统产品思维 ...
- 真实创业故事:我在15平的出租房里死磕项目!
刚来深圳的时候,一个炒粉才3元钱 一个大的快餐盒装着,分量很大,大到能把我一个年轻的小伙子吃撑. 在龙华一个12-15平大小的出租房一个月房租是350元,带个洗手间,一个网费是50元,不含水电.楼房与 ...
- 海涛师兄指的路--指点汇总--各种装逼利器---15.01.27
14.11.10--科学楼226 C primer plus 代码敲两边 许英杰老师 ---------------------------- www.gfsoso.com谷粉搜搜 正点原子.安富莱( ...
- 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 ...
- qt5.15.2-银河麒麟-龙芯国产化-项目打包踩坑实录
qt5.15.2-银河麒麟-龙芯国产化-项目打包踩坑实录 linuxdeployqt几乎是唯一解决方案,网上各种自己写脚本根据ldd去拷贝的,最后大概率都是segment default-除非你是纯Q ...
最新文章
- Apache下实现禁止目录浏览
- HTML5 手写板签名
- Django--models一对多实例
- Mybatis加入Ehcache支持
- Project Tungsten:让Spark将硬件性能压榨到极限
- python快速安装pip
- Layui中Jquery动态设置的select标签加载时而正常时而失效问题排查和解决
- 6a标准 api_【阀门标准】API SPEC 6A CHINESE-2010中文版.pdf
- mysql数据意外删了怎么办_MySQL数据库意外崩溃导致表数据文件损坏无法启动怎么办...
- python socket服务器_python网络编程学习笔记(三):socket网络服务器
- C++的const限定符
- 奉劝那些想学编程的人
- vue项目创建步骤 和 路由router知识点
- 倾斜模型精细化处理_【干货】7款倾斜摄影三维模型修补的软件介绍
- 为癌症医生提供最匹配的医学文献,达摩院精准医学搜索引擎TREC PM 2020评测夺冠...
- 苹果cmsv10精仿好看的挖片网免费自适应简约模板
- opencv mat与cvmat, iplimage转换
- 【C语言每日练习】——3.回文数、特殊回文数(三种方法详解)
- 极兔快递 | 快递单号查询API
- 原子互换:一统公链江湖的神来之笔
热门文章
- 如何修改Windows 7登录界面默认输入法?
- 【专题三】如何考量虚拟化的投资回报率?——服务器虚拟化的阴暗面
- 深入一步研究DNS服务器
- Paradigm此前投资Uniswap的资金价值或超30亿美元
- SAP License:PS模块WBS预算更改
- powerdesigner导出mysql数据库表结构到Excel
- 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序
- Java基础——TreeSet