【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的优点

  1. 允许我们更好的为不同的功能模块,例如【管理员,记费,客户支持等】组织程序的models,Views以及控制器。
  2. 更好地和其他人创建的Areas进行集成
  3. 有利于单元测试

怎样在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【区域】是什么相关推荐

  1. Autofac在Asp.net MVC中在 Areas拆分到不同DLL下的注入失败问题

    废话不多说,直接上代码 public static class MvcContainer{public static IContainer Instance;public static System. ...

  2. 在 ASP.NET Core MVC 中使用 Areas

    在 ASP.NET Core MVC 中使用 Areas 为什么要用 Areas 怎么用 Areas ⚠️使用注意 为什么要用 Areas 使用 Areas ,可以将应用程序中不同的业务模块分类,每个 ...

  3. 通过源代码研究ASP.NET MVC中的Controller和View(二)

    通过源代码研究ASP.NET MVC中的Controller和View(一) 在开始之前,先来温习下上一篇文章中的结论(推论): IView是所有HTML视图的抽象 ActionResult是Cont ...

  4. 关于 ASP.NET MVC 中的视图生成

    在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通 ...

  5. 通过源代码研究ASP.NET MVC中的Controller和View(三)

    通过源代码研究ASP.NET MVC中的Controller和View(一) 通过源代码研究ASP.NET MVC中的Controller和View(二) 第三篇来了,上一篇我已经把VirtualPa ...

  6. 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证

    在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...

  7. ASP.NET MVC中你必须知道的13个扩展点

         ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...

  8. Asp.net mvc中的Ajax处理

    在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper. 这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需 ...

  9. 在 ASP.NET MVC 中使用 Chart 控件

    在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以 ...

最新文章

  1. 计算网络经典书籍--计算机网络:自顶向下方法
  2. hibernate 懒加载_Hibernate懒/急加载示例
  3. 部门直推!百度大搜索招聘NLP、搜索方向算法工程师!
  4. 谷歌浏览器如何更改语言
  5. mysqlreport 文档
  6. 用户控件中复杂属性的设计时支持
  7. pg_stat wait timeout
  8. leslie模型matlab代码6,Leslie_model
  9. 【图像检测-缺陷检测】基于计算机视觉实现液晶显示器表面缺陷检测含Matlab源码
  10. CF595B Pasha and Phone
  11. Nature:为什么免疫系统可产生多样性抗体和T细胞受体?
  12. 搜狗输入法——自定义短语设置
  13. 【表白程序】盛开的玫瑰代码
  14. .removeAttribute is not a function
  15. queue容器常用接口
  16. 海思HI35xx语音识别方案
  17. 手脫 -- PECompact 2.x -gt; Jeremy Collake
  18. 萨克斯的最佳清洁办法
  19. virtualenv简单使用
  20. gcms基峰有什么用_GC-MS与常规GC有什么不同,数据处理应该注意些什么?

热门文章

  1. 常微分方程(ODE)求解方法总结
  2. html+css实现好友列表,类似QQ群聊成员列表
  3. .NET JavaScript点亮灯泡以及新建js文件作为外部代码
  4. python培训学校哪儿好_昆山学习python哪儿好
  5. 通过异常处理错误(6):异常匹配、其他
  6. Vlog必备!城市生活视频博客PR视频模板
  7. sphereface:deep hypersphere embedding for face recognition
  8. Motion Editor (三) 旋转,摆荡,过渡
  9. MyBatis学习--完整教程
  10. 知识点滴 - 性格分析-四类法