C# Area 双重路由】的更多相关文章

在WebApi项目里面 一般除了接口, 还有管理端...一些乱七八糟的,你想展示的东西, 一种做法是分开写: 比如管理后台一个项目, 然后接口一个, 然后页面一个, 其实这样做也可以,但是这么做, 无论是我们部署的时候, 还是调试的时候,都带来了极大的不便. 项目本身 冗余的地方也有很多, 比如说Model层, 比如说BLL, DAL这些,很多重用的方法. 逻辑处理,这些都是不必要的东西. 接下来, 给大家推荐一种 Area 的方式,来解决这个问题. 添加区域, 出现了对应的 在Areas 里面…
在WebApi项目里面 一般除了接口, 还有管理端...一些乱七八糟的,你想展示的东西, 一种做法是分开写: 比如管理后台一个项目, 然后接口一个, 然后页面一个, 其实这样做也可以,但是这么做, 无论是我们部署的时候, 还是调试的时候,都带来了极大的不便. 项目本身 冗余的地方也有很多, 比如说Model层, 比如说BLL, DAL这些,很多重用的方法. 逻辑处理,这些都是不必要的东西. 接下来, 给大家推荐一种 Area 的方式,来解决这个问题. 添加区域, 出现了对应的 在Areas 里面…
.NET MVC 插件化框架支持原生MVC的Area和路由特性 前面开放的源码只是简单的Plugin的实现,支持了插件的热插拔,最近晚上偶然想到,原生的MVC提供Areas和RouteAtrribute等路由特性标签,按照先前的做法,无法解析插件的路由特性和Areas,所以花费了两个晚上的时间,把插件给改进到支持Areas和路由特性,但同时也放弃了Web类插件的热插拔,Func类的插件依然支持热插拔. 下面是实现支持插件使用Areas和路由特性标签的流程: 原生的MVC在启动的时候需要执行两条代…
对于一个较大规模的Web应用,我们可以从功能上通过Area将其划分为较小的单元.每个Area相当于一个独立的子系统,具有一套包含Models.Views和Controller在内的目录结构和配置文件.一般来说,每个Area具有各自的路由规则(URL模版上一般会体现Area的名称),而基于Area的路由映射通过AreaRegistration进行注册. 一.创建Areas 右键工程 -> 添加->区域 添加后生成一套包含Models.Views和Controller在内的目录结构和配置文件:只是…
前面开放的源码只是简单的Plugin的实现,支持了插件的热插拔,最近晚上偶然想到,原生的MVC提供Areas和RouteAtrribute等路由特性标签,按照先前的做法,无法解析插件的路由特性和Areas,所以花费了两个晚上的时间,把插件给改进到支持Areas和路由特性,但同时也放弃了Web类插件的热插拔,Func类的插件依然支持热插拔. 下面是实现支持插件使用Areas和路由特性标签的流程: 原生的MVC在启动的时候需要执行两条代码: AreaRegistration.RegisterAllA…
原文:Routing to Controller Actions 作者:Ryan Nowak.Rick Anderson 翻译:娄宇(Lyrics) 校对:何镇汐.姚阿勇(Dr.Yao) ASP.NET Core MVC 使用路由 中间件 来匹配传入请求的 URL 并映射到具体的操作.路由通过启动代码或者特性定义.路由描述 URL 路径应该如何匹配到操作.路由也同样用于生成响应中返回的 URL(用于链接). 这篇文章将解释 MVC 和路由之间的相互作用,以及典型的 MVC 应用程序如何使用路由特…
ASP.NET从MVC5升级到MVC6 总目录 MVC5项目结构 带有Areas和Filter的项目结构 一般来说,小的MVC项目是不考虑领域的,但是,如果是稍微复杂一点的项目,往往是需要领域这个概念的. 一个领域就是一个小型的MVC项目,所以领域Area的目录结构和普通的目录结构是一样的.(具有Controllers和Views目录,以及一个AreaRegistration文件) 一个MVC项目,Controllers和Views这两个目录由于约定的关系,文件夹的名称和相对位置是不能变化的.…
前言: 这段时间小猪花了不少功夫在研究ASP.NET MVC的源码上面,可谓思想是了解了不少,用的上用不上却是另外一回事了.! 应用场景: ASP.NET MVC中,是依靠某些文件夹以及类的固定命名规则去组织model实体层,views视图层和控制层的.如果是大规模的应用程序,经常会由不同功能的模块组成,而每个功能模块都由MVC中的三层所构成,因此,随着应用程序规模的增大,如何组织这些不同功能模块中的MVC三层的目录结构,有时对开发者来说显得是种负担. 另一个问题就是Controller不允許有…
对于一个较大规模的Web应用,可以从功能上通过Area将其划分为为较小的单元.每个Area相当于一个独立的子系统,具有一套包含Model.Views和Controller在内 的目录结构和配置文件.一般来说,每个Area具有各自的路由规则,而基于Area的路由映射通过System.Web.Mvc.AreaRegistration注册. 先来看下整体结构: LoonMvc4是正常的mvc4项目,loon.plugin1和loon.plugin2是普通类库项目,接下来我们来看下怎么使得loog.pl…
创建测试工程 分别在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…
之前的My Blog提供了列表的展示和文章显示功能,但是所有数据仍然只能通过数据库录入,为了完成最初的角色“作者”的用例,本章将介绍如何使用“Area”实现My Blog的管理功能. 根据功能分离代码 根据功能分离代码即所谓的模块,由于在My Blog中已经存在博客查看功能,而管理功能与查看功能是有区别的,所以在开发时也应考虑将它们的代码进行区分,以便于阅读和管理.而区分代码最常用的就是通过子目录将它们区分,如下: 在Controllers.Models和Views目录下创建Admin子目录,但…
之前的文章中介绍了My Blog文章维护功能的开发,开发过程中使用Area的方法建立了用于维护文章的Controller.View和Model.但是无论代码怎么变对于浏览器来说都是通过一个url地址去访问,现在My Blog可用的url有以下几个: http://localhost:52356/ -- 主页 http://localhost:52356/Home --主页 http://localhost:52356/Post --博客列表 http://localhost:52356/Post…
一.URL 生成 接着上篇讲MVC的路由,MVC 应用程序可以使用路由的 URL 生成功能,生成指向操作的 URL 链接. 生成 URL 可消除硬编码 URL,使代码更稳定.更易维护. 此部分重点介绍 MVC 提供的 URL 生成功能,并且仅涵盖 URL 生成工作原理的基础知识. IUrlHelper 接口用于生成 URL,是 MVC 与路由之间的基础结构的基础部分. 在控制器.视图和视图组件中,可通过 Url 属性找到 IUrlHelper 的实例. // // mvc 框架的Controll…
有一个需求如下:指定某个Area的路由(Area:Wx)在其后面添加用户名或者ID作为URL参数,即像下面的样子: /Wx/xiaoming/ /Wx/xiaoming/photo /Wx/xiaoming/photo/manage?oid=34 这样的话修改一下路由就好了,如下: context.MapRoute( "Wx_rester_with_id2", "Wx/{rid}/{controller}/{action}/", new { controller =…
到Area区分不同的模块让项目结构更加的清晰 TODO 步骤如下: 项目 –> 添加 -> 区域 (Area) 添加路由规则 public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.MapHttpAttributeRoutes(); //新增加的Area(区域)路由 config.Routes.MapHttpRoute( name: "Defau…
ASP.NET Web API 核心框架是一个独立的.抽象的消息处理管道,ASP.NET Web API有自己独立的路由系统,是消息处理管道的组成部分,其与ASP.NET路由系统有类似的设计,都能找到对应的类,虽然有一定区别,基本都是面向接口的,而且命名都以Http开始的,但是,其主要辑基本都一样.看这篇之前先看上一篇<ASP.NET Web API 框架研究 ASP.NET 路由> 一.涉及的类及源码分析 涉及的主要类型都在程序集“System.Net.Http.dll”和“System.W…
总结:HttpModule 和HttpHandler是Asp.net管道的两个重要组件.请求最终处理通过HttpHandler完成.MVC就是通过名为MvcHandler自定义HttpHandler现实对Controller的激活和Action的执行.但对c 和A名称的解析是通过Asp.net的URL路由系统完成,而整个URL路由系统是通过名为UrlRoutingModule的自定义HttpModule实现的. 第一 Asp.net路由系统 有一个针对整个Web应用的全局路由表,表中每一个路由对…
我们在ASP.NET Core MVC中如果要启用Area功能,那么会看到在Startup类的Configure方法中是这么定义Area的路由的: app.UseMvc(routes => { routes.MapRoute( name: "subAreaRoute", template: "{area:exists}/{subarea:exists}/{controller=Home}/{action=Index}/{id?}"); routes.MapRo…
1.前言 在创建一个MVC项目后就可以,在App_Start文件下的RouteConfig.cs里面就可以定义我们的路由规则,其中已经有默认的路由规则了,routes.IgnoreRoute是让路由规则忽略部分文件,如下: routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "controller}/{action}/{id}&qu…
1.命名空间的优先级 在路由注册时指定的命名空间比当前 ControllerBuilder 的默认命名空间具有更高的匹配优先级,但是对于这两个集合中的所有命名空间却具有相同的匹配优先级.换句话说,用于辅助解析 Controller 类型的命名空间分为三个梯队,分别简称为路由命名空间.ConrollerBuilder 命名空间和 Controller 类型命名空间.如果前一个梯队不能正确解析出目标 Controller 的类型,则后一个梯队的命名空间将作为后备,反之,如果根据某个梯队的命名空间进行…
一. Core Mvc 1.传统路由 Core MVC中,默认会在 Startup类→Configure方法→UseMvc方法中,会有默认路由:routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}"); 等价于 app.UseMvcWithDefaultRoute(); (1). 参数解析说明 name代表:路由名称, template代表:路由模板,可以在上面直接赋默认值,defaul…
ASP.NET MVC是一个建立在ASP.NET平台上基于MVC模式的Web开发框架,它提供了一种与Web Form完全不同的开发方式.ASP.NET Web Form借鉴了Windows Form基于控件和事件注册的编程模式,使Web应用的开发变得简单而快捷,但是它却使开发人员与Web的本质渐行渐远.ASP.NET MVC是一种回归,它使开发人员可以真正地面向Web进行编程,我们面对的不再是拖拉到Web页面的控件,而是整个HTTP请求和响应的流程. 这不是一本传统意义上的入门书籍 在<ASP…
路由的核心类型基本定义于System.Web.dll中,路由机制同样可应用与Web Forms,实现请求地址和物理文件的分离. web form中使用路由器的示例 路由配置 protected void Application_Start(object sender, EventArgs e) { var defaults = new RouteValueDictionary { { "name", "*" }, { "id", "*&…
什么是代码结构的组织?asp.net MVC 5 默认创建出的几个目录的标准含义分别如下: Controllers目录存放MVC模式中的Controler Models目录存放MVC模式中的Model Views目录存放MVC模式中的View 除此外还有Content(存放资源文件,如CSS.图片).Scripts(JS脚本文件)等目录是有标准含义的,有标准含义也就是说有非标准含义,你可以遵循这些标准含义也可以定义自己的非标准含义,比如: asp.net MVC 5 中的Controller无非…
<ASP.NET MVC 5 框架揭秘> 基本信息 作者: 蒋金楠 出版社:电子工业出版社 ISBN:9787121237812 上架时间:2014-8-1 出版日期:2014 年8月 开本:16开 页码:656 版次:1-1 所属分类:计算机 > 软件与程序设计 > .NET > ASP.NET 更多关于>>> <ASP.NET MVC 5 框架揭秘>   编辑推荐 如果你觉得自己对ASP.NET MVC 所知甚少,可利用本书来系统学习:如果你…
一.路由 1.HttpApplication中的ASP.NET MVC .Net 3.5 引入了System.Web.Routing程序集,通过Url Routing的机制,可以实现将一个虚拟路径的请求映射到一个Action方法上. 在Asp.net MVC中,Route类指定Asp.net应用程序中针对虚拟路径请求的处理方式,可以为每种URL模式创建一个Route对象.Route类定义如下: public class Route : RouteBase 为了完成针对请求的路由工作,在Asp.n…
概述 本文已经同步到<Asp.net Vnext 系列教程 >中] ASP.NET 路由系统是主要负责两个操作: 它将传入的 HTTP 请求映射到路由处理程序给出的路由的集合. 路由系统的责任是找到匹配的路由,创建路由数据,并将请求分配给一个处理程序. 选择动作是 MVC 的处理程序的实现细节.它使用路由数据和从传入请求其他信息来选择要执行的操作 代码实现TemplateRoute 类初始化路由和 URL 模板 public class MyTemplateRoute : TemplateRo…
目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 今天是开心的一天.因为我们终于来到了系列学习的最后一节.我相信你喜欢之前的课程,并从中学到了许多. 1. Lab 32 - 让项目有组织性 这个实验确切地讲无关任何新的功能.它只是使项目更有结构性和系统化. 第一步:创建解决方案文件夹 右击解决方案,然后选择 Add -> New Solution Folder. 将文件夹的名称改为「View And Controller」.现在重复这个步骤,创…
1-1)文件结构的升级(Area和Filter知识总结) - ASP.NET从MVC5升级到MVC6   ASP.NET从MVC5升级到MVC6 总目录 MVC5项目结构 带有Areas和Filter的项目结构 一般来说,小的MVC项目是不考虑领域的,但是,如果是稍微复杂一点的项目,往往是需要领域这个概念的.一个领域就是一个小型的MVC项目,所以领域Area的目录结构和普通的目录结构是一样的.(具有Controllers和Views目录,以及一个AreaRegistration文件)一个MVC项…
原文:返璞归真 asp.net mvc (6) - asp.net mvc 2.0 新特性 [索引页][源码下载] 返璞归真 asp.net mvc (6) - asp.net mvc 2.0 新特性 作者:webabcd介绍asp.net mvc 之 asp.net mvc 2.0 新特性:如通过 DataAnnotations 实现数据验证及客户端验证,MVC 与 Dynamic Data 的结合,对异步 Controller 的支持,对 Area 的支持,新增的一些帮助方法等示例1.新特性…