MVC 区域模块

mvc4.0新增的area区域机制,可以协助你在架构较为大型的项目,让独立性较高的部分功能独立成一个MVC子网站,以降低网站与网站之间的耦合性,也可以通过area的切割,让多人同时开发同一个项目时候,能够减少互相冲突的机会。

在mvc项目中不能有两个同名的控制器,即使你有区分不同的命名空间可以正常编译,但实际上在运行时仍然出错,除非在app_start/RouteConfig文件中通过mapRoute方法新增网址路由的设置,并明确指定命名空间,才能让此功能正常运行。

添加区域

项目上单击右键 添加 → 区域 如下图:

我们发现项目中多了一个Area目录,里面存放着刚才新建的Admin目录,目录中也包含了Mvc文件夹的结构,就像一个小型的Mvc项目一样。 打开Global.asax,我们发现区域已第一个被注册在Application_Start之中了。

接着我们查看区域文件夹下的路由文件AdminAreaRegistration.cs

不同区域互相访问

在Admin区域下,如果需要访问区域外部的页面,我们可以使用Html.RouteLink方法来生成跳转链接。

@Html.RouteLink("显示的内容", "路由名称", new { controller = "控制器名称", action = "Action名称" })

注意:不推荐定义相同名称的控制器。

如果定义了相同名称的控制器,则需要在路由中添加namespace参数来区分它们的访问域范围。

区域的功能类似一个小的Mvc项目,麻雀虽小五脏俱全,有自己的控制器、模型、视图、路由设置。 区域的路由设置是最优先的。

时间: 2024-12-18 19:08:49

MVC 区域模块的相关文章

NET MVC异常处理模块

一个简单的ASP.NET MVC异常处理模块 一.前言 异常处理是每个系统必不可少的一个重要部分,它可以让我们的程序在发生错误时友好地提示.记录错误信息,更重要的是不破坏正常的数据和影响系统运行.异常处理应该是一个横切点,所谓横切点就是各个部分都会使用到它,无论是分层中的哪一个层,还是具体的哪个业务逻辑模块,所关注的都是一样的.所以,横切关注点我们会统一在一个地方进行处理.无论是MVC还是WebForm都提供了这样实现,让我们可以集中处理异常. 在MVC中,在FilterConfig中,已经默认

记录学习MVC过程,MVC区域母版页(七)

1.MVC的区域就是一个小的mvc,区域路由高于普通的路由 mvc区域自带m,v和c,可以把产品,会员,新闻,文件多的时候,可以用多个区域分割项目成小项目 2.渲染局部视图和局部action  (ifram方式不会被蜘蛛爬到,不利于SEO) @{ //Html.RenderPartial("About"); //只渲染了about的页面,数据不会被加载 Html.RenderAction("About");//页面和controller里传过来的数据都被渲染了 }

MVC区域 视图必须派生自 WebViewPage 或 WebViewPage<TModel>

http://blog.csdn.net/iack_ji/article/details/16965885 今天在学习 mvc区域时,将区域控制器类 外迁到其他的程序集的练习中出现了"视图必须派生自 WebViewPage 或 WebViewPage<TModel>"错误,后来经过查找资料,发现是原来没有将views文件夹下的web.config文件一起复制到区域文件夹下.

MVC区域小结

MVC3一直在学习,项目中有的时候也会用到,博客园也一直逛,想写点什么东西,可惜我这个人平时都很懒,理论层面的东西自己写不来,还是来点实际的简单入门的博客,对自己总结能力是一种提升,当然也希望对没有使用过区域的人有所帮助. 为什么要有区域? MVC本身提倡的就是关注点分离,控制器控制业务逻辑,模型用于读取数据,视展示展示页面,这样不管是对于开发者本身还是对于后来维护项目的开发者来说都是有极大好处的,能很开熟悉项目的业务,而不会像层次不清晰,代码不规范,逻辑混乱的项目,提升开发效率.但是当项目本身

MVC 区域内默认控制器不能访问(Multiple types were found that match the controller named ‘Index&#39;)

异常处理汇总-后端系列 http://www.cnblogs.com/dunitian/p/4523006.html 错误信息 和主页的默认控制器冲突了,修改下Areas里面的默认控制器就可以了 MVC 区域内默认控制器不能访问(Multiple types were found that match the controller named 'Index')

将子域名请求路由到MVC区域

写了个扩展,分享给需要的朋友. 0x01 使用方法 在mvc区域中的{xxxx}AreaRegistration.cs文件中,如ProjectsAreaRegistration.cs <pre> <code> using Dsvisual.Extensions; namespace Dsvisual.WebApp.Areas.Projects{    public class ProjectsAreaRegistration : AreaRegistration    {     

MVC 区域功能

因为MVC项目是要求都放在固定的文件夹,所以,当项目大的时候,会很不方便管理,所以微软引入的区域的功能 使用方法: 在项目上右击--添加--区域 就会出现Areas的文件夹,里面就是子MVC 渲染: Html.RenderPartial("About");  //只是把About的视图(也就是HTML页)渲染(嵌套)到Index页 Html.RenderAction("About");  //是讲控制器的Action也渲染到Index页

MVC区域使用

新建项目 Main: 添加一个MVC5控制器并添加index视图:(HomeController) Views/Home/Index.cshtml内容: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title&g

VS2013和VS2015中MVC 区域路由匹配顺序相反

创建测试工程 分别在vs2013和vs2015中创建mvc项目,并创建First.Second.Three三个Area,每个Area下面创建一个HomeController和Index视图.修改RouteConfig.cs中的路由注册方法,添加命名空间 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.M