5. ASP.NET MVC 中的Areas【区域】是什么
【PS返回上一篇:-->4.ASP.NET MVC 5.0 视图之模型绑定】
从ASP.NET MVC 2.0开始,微软就提供了一个新特性:Areas【区域】。Areas仅仅是用来将大型程序拆分为单独的MVC,例如:
当你向一个项目添加Area的时候,为Area定义的路由就定义在AreaRegistration文件中。基于请求的URL,路由发送请求到Area。为Area注册路由,你添加代码到Global.asax文件中,然后程序运行的时候,就会自动在AreaRegistration文件中,找到Area的路由规则。
AreaRegistration.RegisterAllAreas();
在MVC中使用Area的优点
- 允许我们更好的为不同的功能模块,例如【管理员,记费,客户支持等】组织程序的models,Views以及控制器。
- 更好地和其他人创建的Areas进行集成
- 有利于单元测试
怎样在ASP.NET MVC 5.0中创建Area
我们创建一个MVC应用程序:创建好Home控制器和Index视图:
好了,现在我们需要在这个程序中,创建Area,怎么创建?右键选择项目,添加-->区域
输入你想要的名字,这里我输入的Mens
可以看到,生成了如下文件:
在Mens Area的控制器文件夹下,添加一个Home控制器。
然后给Mens Index方法添加视图:
接着按照刚才的步骤,再添加一个Womens Area[包含控制器,视图];
创建好之后,直接运行程序,我们发现出错了:
看到这个异常信息,我们知道了,我们有多个Home控制器,我们应该在RouteConfig类中使用namespaces特性。如果我们先不改,而是仅仅想要访问Womens Area下的Home怎么办?
很简单,在浏览器中,输入:http://localhost:49269/Womens/Home
可以看到,我们可以直接访问Womens的Home控制器下的Index
现在我们修复上面的Bug,打开项目的RouteConfig文件,修改:
修改之后,我们在运行程序,结果如下:
但是我们想要在主页面,跳到区域视图里面怎么办:
在主Home控制器的Index修改一下:
点击一下“Go To Mens Home”
这就是从一个area跳到另一个Area的例子。
如果,我们想要在URL中设置默认的Area参数,我们可以在RouteConfig文件中使用DataTokens集合,添加“area”键,值就是Area的值。
修改之后,我们运行程序,默认就到了Womens页面:
好了,以上就是Area的基础介绍。谢谢大家,有什么疑问,随时留言评论。
转载于:https://www.cnblogs.com/caofangsheng/p/10461541.html
5. ASP.NET MVC 中的Areas【区域】是什么相关推荐
- Autofac在Asp.net MVC中在 Areas拆分到不同DLL下的注入失败问题
废话不多说,直接上代码 public static class MvcContainer{public static IContainer Instance;public static System. ...
- 在 ASP.NET Core MVC 中使用 Areas
在 ASP.NET Core MVC 中使用 Areas 为什么要用 Areas 怎么用 Areas ⚠️使用注意 为什么要用 Areas 使用 Areas ,可以将应用程序中不同的业务模块分类,每个 ...
- 通过源代码研究ASP.NET MVC中的Controller和View(二)
通过源代码研究ASP.NET MVC中的Controller和View(一) 在开始之前,先来温习下上一篇文章中的结论(推论): IView是所有HTML视图的抽象 ActionResult是Cont ...
- 关于 ASP.NET MVC 中的视图生成
在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通 ...
- 通过源代码研究ASP.NET MVC中的Controller和View(三)
通过源代码研究ASP.NET MVC中的Controller和View(一) 通过源代码研究ASP.NET MVC中的Controller和View(二) 第三篇来了,上一篇我已经把VirtualPa ...
- 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证
在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...
- ASP.NET MVC中你必须知道的13个扩展点
ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...
- Asp.net mvc中的Ajax处理
在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper. 这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需 ...
- 在 ASP.NET MVC 中使用 Chart 控件
在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以 ...
最新文章
- 计算网络经典书籍--计算机网络:自顶向下方法
- hibernate 懒加载_Hibernate懒/急加载示例
- 部门直推!百度大搜索招聘NLP、搜索方向算法工程师!
- 谷歌浏览器如何更改语言
- mysqlreport 文档
- 用户控件中复杂属性的设计时支持
- pg_stat wait timeout
- leslie模型matlab代码6,Leslie_model
- 【图像检测-缺陷检测】基于计算机视觉实现液晶显示器表面缺陷检测含Matlab源码
- CF595B Pasha and Phone
- Nature:为什么免疫系统可产生多样性抗体和T细胞受体?
- 搜狗输入法——自定义短语设置
- 【表白程序】盛开的玫瑰代码
- .removeAttribute is not a function
- queue容器常用接口
- 海思HI35xx语音识别方案
- 手脫 -- PECompact 2.x -gt; Jeremy Collake
- 萨克斯的最佳清洁办法
- virtualenv简单使用
- gcms基峰有什么用_GC-MS与常规GC有什么不同,数据处理应该注意些什么?
热门文章
- 常微分方程(ODE)求解方法总结
- html+css实现好友列表,类似QQ群聊成员列表
- .NET JavaScript点亮灯泡以及新建js文件作为外部代码
- python培训学校哪儿好_昆山学习python哪儿好
- 通过异常处理错误(6):异常匹配、其他
- Vlog必备!城市生活视频博客PR视频模板
- sphereface:deep hypersphere embedding for face recognition
- Motion Editor (三) 旋转,摆荡,过渡
- MyBatis学习--完整教程
- 知识点滴 - 性格分析-四类法