asp.net MVC 的路由匹配】的更多相关文章

引言 路由,正如其名,是决定消息经由何处被传递到何处的过程.也正如网络设备路由器Router一样,ASP.NET MVC框架处理请求URL的方式,同样依赖于一张预定义的路由表.以该路由表为转发依据,请求URL最终被传递给特定Controller的特定Action进行处理.而在相反的方向上,MVC框架的渲染器同样要利用这张路由表,生成最终的HTML页面并返回URL.所以,理解整个ASP.NET MVC的路由系统,有两个必须出现的关键元素:Controller与Action,有两个方向的操作:传入的…
原文:返璞归真 asp.net mvc (2) - 路由(System.Web.Routing) [索引页] [源码下载] 返璞归真 asp.net mvc (2) - 路由(System.Web.Routing) 作者:webabcd 介绍 System.Web.Routing - 此命名空间提供用于 URL 路由的类,通过该类可以使用不映射到物理文件的 URL IRouteHandler - 路由处理程序接口,自定义的路由处理程序都要实现这个接口 RequestContext - 封装所请求…
本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定义格式的路由时,有几点要注意: 1.arg1/arg2/arg3 的部分应该在 routes.MapRoute 中设置默认值UrlParameter.Optional,才允许同时访问只传部分值比如 只传 arg1,或者 arg1/arg2 这样的路径 2.在设置默认值的情况下,如果出现 http:/…
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012835032/article/details/51160824asp.net mvc 特性路由可以直接给控制器下的每一个action指定一个地址,相对于在RouteConfig下面配置路由更灵活.方便. 使用方法也很简单,只要在RouteConfig注册路由的时候吧特性路由加上去就可以了. jq调用 就一句代码 routes.MapMvcAttributeRoutes();1控制器下的act…
好久没写博文了,感觉最近好像少了点动力.唉!这回就看看这个MVC的路由. 说这个路由机制其实不是MVC里面特有的,ASP.NET里面本身就有的,只不过在WebForm里面一般比较少用,而在MVC里就是把原本的路由扩展了.原本对不知道单纯在ASP.NET里使用路由的详细情况,但自从看了蒋金楠老师的几篇文章之后知晓了,不过这篇还是讲MVC的路由而已. 路由的定义是位于根目录下的全局文件Global.asax.cs.里面有个RegisterRoutes方法 public static void Reg…
我们都知道调用ASP.NET MVC的某些API函数(诸如:Url.Action.RedirectToAction等)可以生成URL,ASP.NET MVC会根据调用API函数时传入的参数去匹配系统定义的路由(Route),然后通过匹配成功的路由去生成相应的URL. ASP.NET MVC会依次根据如下三个规则生成URL: 调用ASP.NET MVC API函数时传入的参数信息 当前请求的URL(就是Request.Url)和系统中定义路由匹配(按照路由表定义的顺序,从上往下匹配)后的匹配值 系…
主要操作在App_Start 目录下的 RouteConfig.cs 文件. 一.Url构造方式 1.命名参数规范+匿名对象 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }…
asp.net MVC 的URL路由是一个非常强大的功能,而且有个优点:强大单不复杂.然而,目前我在网上看到的相关资料,却都仅仅提供一些示例,仅通过这些示例,初学者基本上不可能明白为什么要这么配置,更不用说灵活运用了.这篇文章将采取循序渐进的方式,来解释MVC URL路由的配置方法,使初学者能够完全掌握MVC URL路由的配置方法.阅读本文的用户必须有如下基础:1.熟悉C#:2.能够通过Visual Studio建立asp.net MVC项目:3.能够在MVC项目中创建Model.Control…
创建测试工程 分别在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…
框架自动生成的路由配置 上图中,路由配置文件为App_Start文件夹下的RouteConfig.cs. 代码如下: public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url:…
asp.net mvc实现伪静态路由必须按如下方式设置好,才能访问 .htm 或者.html页面 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 来自为知笔记(Wiz)…
ASP.NET MVC ,一个适用于WEB应用程序的经典模型 model-view-controller 模式.相对于web forms一个单一的整块,asp.net mvc是由连接在一起的各种代码层所组成. 最近又接触了关于asp.net mvc的项目,又重拾以前的记忆,感觉忘了好多,特此记录. 首先,来说说路由Routing. ASP.NET MVC 不再是要依赖于物理页面了,你可以使用自己的语法自定义URL,通过这些语法来指定资源和操作.语法通过URL模式集合表达,也称为路由. 路由是代表…
首先看一下命名路由和没有命名的差别: 命名路由: routes.MapRoute( name: "Test", // Route name url: "code/p/{action}/{id}", // URL with parameters defaults: new { controller = "Section", action = "Index", id = UrlParameter.Optional } // Par…
假设存在这样一段路由配置: routes.MapRoute( name: "ProductList1_01", url: "pl/{bigSortId}_{smallSortId}_{brandId}.html", defaults: new { controller = "NewStore", action = "ProductList" }, namespaces: mallNS ); routes.MapRoute( n…
在MVC之前,ASP.NET假设请求的URL与服务器上的文件之间有关联,服务器接受请求,并输出相应的文件.而在引入MVC后,请求是由控制器的动作方法来处理的.为了处理URL,便引入了路由系统. 首先我们来创建一个基础项目用来演示.代码如下: public class HomeController : Controller { public ActionResult Index() { ViewBag.Controller = "Home"; ViewBag.Action = "…
MVC的强大之处之一当然是路由,这是几年前一位牛人给我说过的话,本人深感认同.今天就再次探究. 首先新建一个空的MVC项目,我们会发现在RouteConfig类中存在一个默认的路由配置,通常我会在这里的路由中添加一个命名空间,以防止路由配置冲突 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home&quo…
1.URL模式 路由系统用一组路由来实现它的功能,这些路由共同组成了应用系统URL架构或方案,这种URL架构是应用程序能够识别并能对之做出响应的一组URL,当处理一个输入 请求时,路由系统的工作是将这个请求URL与一个模式进行匹配,从此URL为这个模式中定义的片段变量提取相应的值. 2.路由的创建与注册 (1) RouteConfig.cs配置路由文件 (2)RegisterRoutes 方法通过global.asax.cs文件进行调用,当启用应用程序时,通过底层ASP.NET 平台进行调用,将…
路由Route路由规则Route:可以查看源代码了解一下构造方法,需要指定路由格式.默认值.处理器三个值路由数据RouteData:当前请求上下文匹配路由规则而得到的一个对象,可以在Action中通过RouteData.GetRequestString(“controller/action”)获取本此请求中控制器或行为的真实名称路由集合RouteCollection:存放路由规则的集合Collection<RouteBase>,一个MVC项目中,可以配置多个路由规则,按照键值对的格式存储到路由…
前言 这一节我们开始讲讲基础的东西也就是如题目所言,个人觉得当学习或者利用MVC时,必须得知道最新迭代版本新增了什么,至少得知道MVC 3.MVC 4或者MVC 5有什么区别,而不至于当利用到低版本时,出现某些特性就懵逼以至于认为是代码出了问题,这一点是很明确需要我们去了解. 话题 在MVC 5之前都是基于约定的路由,如下: routes.MapMvcAttributeRoutes(); routes.MapRoute( name: "Default", url: "{con…
项目中遇到需要动态生成控制器和视图的. 于是就折腾半天,动态生成控制器文件和视图文件,但是动态生成控制器不编译是没法访问的. 找人研究后,得到要领: 1.放在App_Code文件夹内 2.不要命名空间 功能虽然实现了,可是觉得这个发放实在有些挫,心里老挂念这个事情.想着既然使用MVC,能不能实现动态路由访问呢? 果然找到两篇相关的文章,解决了问题: 1.http://www.cnblogs.com/gyche/p/5216361.html 2.http://stackoverflow.com/q…
问题描述:默认情况下mvc已经将路由参数设置配置好了,这里就不在讲解,请到园子搜索,有很多这方面相关的文章.这里讲述的是,一个MVC项目中,我们输入一个错误的URL,或者根本不存在的URL,如:http://localhost:6224/jeutcvmg/jfidjfijdif,出现一个很难看,非常不友好的错误页面.希望它跳转到指定页面.默认主页等,且达到全局响应的效果. 关键词:customErrors 解决详解 1.打开<web.config>,找到<system.web>节点…
自定义约束前 namespace MvcApplication2 { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); //默认 routes.MapRoute( name: "Default", url: "{controller}/…
在做公司接口的时候  由于规范API 要用点分割. 如: HealthWay.controller.action 在MVC 4 下面做了个 路由配置如下: public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "HealthWay_default", "HealthWay.{controller}.{action}", new { action =…
这个东西,真搞不懂.看了网上的教程和文章,也不懂(也不清楚写那些文章的人自己是否真的懂).只好靠自己一顿乱摸索. 好比说,下面这个路由: //路由1 config.Routes.MapHttpRoute( name: "SysApi", routeTemplate: "api/SysManager/{action}/{id}", defaults: new { controller = "SysManager", id = RouteParame…
学习了mvc有一段时间了,本以为直接可以通过request对象直接获取路由参数呢,后来实验了一下发现想错了,mvc有专门获取路由参数的方式,在不同的地方,获取路由参数的方式也不一样,这里分别说一下,在controller,非controller的类里面,和view里如何获取路由参数: 1.在controller里获取路由参数: var controller = RouteData.Values["controller"];//action,id或其他路由参数同理 2.在view中获取:…
受限确保自定义路由在开发服务器上Ok! 然后在web.config的<webserver>节点下增加如下配置就好了.   1: <system.webServer> 2: <modules runAllManagedModulesForAllRequests="true" /> 3: </system.webServer>…
routes.MapRoute(                "Activity2", // 路由名称                "Activity/{id}", // 带有参数的 URL                new { controller = "Activity", action = "displayActivity" }, new { id = @"\d{1,8}" } // 参数默认…
[HttpGet] [Route("item/{id:long:min(1)}.html")] 首先RouteConfig配置文件RegisterRoutes方法添加以下代码: routes.MapMvcAttributeRoutes(); 报错: HTTP Error 404.0 - Not Found 您要找的资源已被删除.已更名或暂时不可用. 最可能的原因: 指定的目录或文件在 Web 服务器上不存在. URL 拼写错误. 某个自定义筛选器或模块(如 URLScan)限制了对该文…
引言 对于ASP.NET MVC的路由系统相信大家肯定不陌生.今天我们就深入ASP.NET的框架内部来看一下路由系统到底是怎么通过我们给出的地址(例如:/Home/Index)解析出Controller和Action.今天的这一篇文章我们就深入框架内部,看看里面的流程. UrlRouteModule介绍 ASP.NET MVC本质上是通过IHttpModule和IHttpHandler两个组件对ASP.NET框架进行扩展来实现的.ASP.NET 请求处理过程是基于管道模型的,这个管道模型是由多个…