首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET MVC路由扩展:链接和URL的生成

ASP.NET 路由系统通过注册的路由表旨在实现两个“方向”的路有功能,即针对入栈请求的路由和出栈URL的生成。...具体的逻辑很简单,如果指定的Controller名称为Null,我们通过RequestContext获取出当前Controller名称,然后将Action和Controller名称添加到表示路由变量 列表的...页面(Default.aspx)中我们通过如下的代码利用我们自定义的RouteHelper生成三个URL。...RouteUrl方法来说,它还是利用整个路由表进行URL的生成,如果显示指定了路由对象的注册名称,那么就会从路由表中获取相应的路由对象,如果该路由对象与指定的变量列表不匹配,则返回Null;否则返回生成的...路由扩展:路由映射 ASP.NET MVC路由扩展:链接和URL的生成

1.7K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Asp.Net MVC3 简单入门第一季(四)详解Request Processing Pipeline

    而做Asp.Net MVC的项目呢,所有的请求是都归结到Action上,Url应该是直接请求Action。 客户端发出请求后,此请求就会通过网络发出,可能经过多个路由、还可能经过域名解析等等.......NET 4却是在.Net的默认配置文件中配置的。 UrlRoutingModule做了这么几个工作:首先他会拿着你的请求到路由表中去匹配相应的路由规则。..."{controller}/{action}/{id}", // 带有参数的 URL new { controller = "Home"...方法通过ViewEngine去加载具体的Aspx页面或者是cshtml页面生成对应的page类【针对Aspx】,然后再调用IView接口的Render方法将请求信息+ViewData的信息以等一块渲染成...在此阶段我们发现IViewEngine内部的实现这是到规定路径下去加载Aspx页面生成对应的ViewPage类。 IView接口的Render方法才是真正的去将Html和数据装配的到一块。

    62311

    ASP.Net MVC开发基础学习笔记:一、走向MVC模式

    blog目录下的index.aspx文件,然后由index.aspx页面的CodeBehind文件(.CS文件)进行逻辑处理,其中或许也包括到数据库去取出数据(其中的经过怎样的BLL到DAL这里就不谈了...综上所述,在WebForm模式下:一个URL请求的是在服务器与该URL对应路径上的物理文件(ASPX文件或其他),然后由该文件来处理这个请求并返回结果给客户端。   ...,更易于敏捷开发与测试驱动开发,有很强的可扩展性;      2.因为没有服务器端控件,所以程序员控制的会更加灵活,页面更加干净,没有ViewState;      3.通过修改路由规则,可以控制生成自定义的...  我们通过调试可以知道,在MVC中所有的请求都归结到控制器下面的Action。...所以,所有的请求都是要指定一个具体的Action,Url的格式是根据路由规则来定的。那么,在ASP.Net MVC的路由规则默认又是什么,在哪里设置的呢?

    2K30

    Asp.net MVC 之 Contorllers(二)

    URL路由模块会拦截无法由IIS服务处理的应用程序的任何请求。如果URL是指向一个物理文件(例如,一个ASPX文件) ,那么路由模块将忽略该请求,除非另行配置。...接着,URL路由模块尝试匹配所有应用程序定义的路由的URL。如果匹配到,请求将转到 ASP.NET MVC 的领地,再调用一个控制器类进行处理。...最后,只有符合预定义的 URL 格式(也就是路由)的请求,才被允许享用 ASP.NET MVC 运行时的服务。所有这些请求都被路由到一个共同的序实例化控制器类的HTTP处理程,并调用其中定义的方法。...然而,在需要的情况下,可以利用这个扩展功能。会在后面的章节说自定义路由处理程序时,并提供一个例子。...例如,将前面的代码添加到一个 ASP.NET MVC 应用程序的 Global.asax.cs 文件,然后运行,当访问default.aspx页面时,会出现一个 HTTP 404 错误。

    1.9K60

    ASP.Net MVC开发基础学习笔记:一、走向MVC模式

    /blog/index.aspx的URL,那么我们的WebForm程序会到网站根目录下去寻找blog目录下的index.aspx文件,然后由index.aspx页面的CodeBehind文件(.CS文件...)进行逻辑处理,其中或许也包括到数据库去取出数据(其中的经过怎样的BLL到DAL这里就不谈了),然后再由index.aspx页面来呈现给用户。   ...综上所述,在WebForm模式下:一个URL请求的是在服务器与该URL对应路径上的物理文件(ASPX文件或其他),然后由该文件来处理这个请求并返回结果给客户端。   ...,更易于敏捷开发与测试驱动开发,有很强的可扩展性;      2.因为没有服务器端控件,所以程序员控制的会更加灵活,页面更加干净,没有ViewState;      3.通过修改路由规则,可以控制生成自定义的...所以,所有的请求都是要指定一个具体的Action,Url的格式是根据路由规则来定的。那么,在ASP.Net MVC的路由规则默认又是什么,在哪里设置的呢?

    91020

    ASP.NET MVC路由扩展:路由映射

    出于自身路由特点的需要,ASP.NET对ASP.NET的路由系统进行了相应的扩展。...类型定义了一系列的扩展方法以实现文件路径无关的路由映射,这些扩展方法定义在RouteCollectionExtensions类型中。...二、 实例演示:注册路由映射与查看路由信息 ASP.NET MVC通过定义在RouteCollectionExtensions中的扩展方法MapRoute进行路由映射,为了让读者对此有一个深刻的认识,我们来进行一个简单的实例演示...[源代码从这里下载] 我们在创建的ASP.NET Web应用(不是ASP.NET MVC应用)添加一个Web页面(Default.aspx),并按照之前的方式以内联代码的方式直接将RouteData的相关属性显示出来...ASP.NET MVC路由展:路由映射 ASP.NET MVC路由扩展:链接和URL的生成

    1.4K100

    快速入门系列--MVC--02路由

    现在补上URL路由的学习,至于蒋老师自建的MVC小引擎和相关案例就放在论文提交后再实践咯。...通过ASP.NET的路由系统,可以完成请求URL与物理文件的分离,其优点是:灵活性、可读性、SEO优化。...接下来通过一个最简单的路由例子进入这部分的学习,这是一个蒋老师提供的WebForm路由的例子,回想起刚做ASP.NET时,每次看到.aspx页面的前台代码时的茫然和无措,茫茫多的标签,属性,数据源的绑定吓死小兄弟俺了...", false, defaults, constraints, dataTokens);     再则是介绍一些路由模块在ASP.NET MVC中的扩展,包括是UrlParameter.Optional...UrlRoutingModule实现了IHttpModule,通过注册HttpApplication的PostResolveRequestCache事件对请求进行拦截,并利用路由表与请求URL进行模式匹配得到相应的路由数据

    86190

    ASP.NET路由系统实现原理:HttpHandler的动态映射

    如下图所示,ASP.NET路由系统通过一个注册到当前应用的自定义HttpModule对所有的请求进行拦截,并通过对请求的分析为之动态匹配一个用于处理它的HttpHandler。...MvcRouteHandler 三、ASP.NET路由系统扩展         实例演示:通过自定义Route对ASP.NET路由系统进行扩展 上图所示的作为请求拦截器的HttpModule...实例演示:通过自定义Route对ASP.NET路由系统进行扩展 定义在ASP.NET路由系统中默认的路由类型Route建立了定义成文本模板的URL模式与某个物理文件之间的映射,如果我们对WCF REST...Weather.aspx的后台代码中,我们定义了如下一个GenerateUrl根据指定的区号(areacode)和预报天数(days)创建一个Url,而Url的生成直接通过调用RouteTable的Routes...模板所包含的段均由具有默认值的变量构成,所以当我们请求根地址时,会自动路由到Weather.aspx。

    1.7K60

    asp.net MVC 应用程序的生命周期

    其实当我们对内在机制有了一定的了解以后,会发现微软的MVC框架的扩展性很强,到处都留有扩展接口,让我们通过扩展能够自己定义自己所需要的处理机制,这也正是为什么MVC框架如此出名的原因。   ...尽管大部分时候我们都使用的是框架提供的默认的函数,但是如果我们了解了每个控件所扮演的角色,我们就可以轻松的扩展和使用我们自己实现的方法,就目前来说MVC是扩展性比较强的框架。...我们可以注册相应的事件,将处理逻辑注入到HttpApplication处理请求的某个阶段。在HttpApplication这个类中定义了19个事件来处理到达HttpApplication实例的请求。...先看看下面这张图,描述了MVC的主要经历的管道事件: ?   上图就是一个完整的mvc应用程序的一个http请求到响应的整个儿所经历的流程。...在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件。

    1.4K10

    asp.net MVC 应用程序的生命周期

    其实当我们对内在机制有了一定的了解以后,会发现微软的MVC框架的扩展性很强,到处都留有扩展接口,让我们通过扩展能够自己定义自己所需要的处理机制,这也正是为什么MVC框架如此出名的原因。   ...尽管大部分时候我们都使用的是框架提供的默认的函数,但是如果我们了解了每个控件所扮演的角色,我们就可以轻松的扩展和使用我们自己实现的方法,就目前来说MVC是扩展性比较强的框架。...我们可以注册相应的事件,将处理逻辑注入到HttpApplication处理请求的某个阶段。在HttpApplication这个类中定义了19个事件来处理到达HttpApplication实例的请求。...先看看下面这张图,描述了MVC的主要经历的管道事件: ?   上图就是一个完整的mvc应用程序的一个http请求到响应的整个儿所经历的流程。...在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件。

    1.7K30

    asp.net MVC 应用程序的生命周期

    其实当我们对内在机制有了一定的了解以后,会发现微软的MVC框架的扩展性很强,到处都留有扩展接口,让我们通过扩展能够自己定义自己所需要的处理机制,这也正是为什么MVC框架如此出名的原因。   ...尽管大部分时候我们都使用的是框架提供的默认的函数,但是如果我们了解了每个控件所扮演的角色,我们就可以轻松的扩展和使用我们自己实现的方法,就目前来说MVC是扩展性比较强的框架。...我们可以注册相应的事件,将处理逻辑注入到HttpApplication处理请求的某个阶段。在HttpApplication这个类中定义了19个事件来处理到达HttpApplication实例的请求。...先看看下面这张图,描述了MVC的主要经历的管道事件: ?   上图就是一个完整的mvc应用程序的一个http请求到响应的整个儿所经历的流程。...在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件。

    1.9K90

    初识Asp.Net MVC2.0【续】

    WebFrom的一个事件开发模型     浏览者发送一个url请求,如果不在使用url重写机制或静态化技术的话,url请求的是具体一个xx.aspx页面。...iis将url请求交给.Net Freamwork处理,这时经过复杂的Asp.Net生命周期 到执行我们 xx.aspx.cs文件,我们在代码文件中编写一些调用业务逻辑层处理数据的代码,然后再将处理的结果返回一个新的视图...ViewPage交给视图引擎将aspx模板替换成具体的html标签装配成html然后写回客户端。...用户的请求→IIS→.Net Freamwork→Route【.Net Freamwork 4.0 版本提供的Url路由组件】→Controller【控制器:处理用户的请求,从model中获取数据,并将数据交给...View】→View→视图引擎【将数据装配到视图中,并生成新的html】→客户端 如下图所示Asp.Net MVC的开发模型: 看一下一个普通的Asp.Net MVC项目的项目: 希望这篇简单的开发模型的介绍能对你学习

    38330

    ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门

    图中蓝色的部分可以认为是系统内置比较靠前的中间件或者我们自定义的中间件,MVC是一个特殊的中间件且通常放在最后,所以这里单独画出来 对于MVC中间件,如果请求的URL与路由匹配,那么后面的中间件均不会生效...我们也可以通过自定义中间件注册到管道中来干预请求。 2、ASP.NET Core 中间件基础使用 在程序中,中间件是基于委托来构建的。...,将TokenCheckMiddleware挂在接口IApplicationBuilder上 3、中间件注册/引用 在启动类Startup.cs的Configure方法中注册/引用中间件 public...}); } 这里要注意的是,如果你是一个MVC应用,请一定要把MVC这个中间件作为最后一个注册。...因为中间件是按照注册顺序被调用的。如果放在MVC之后,请求的URL也有对应路由适配,那么整个请求已经被MVC接管。后面的中间件就不会被调用了。

    1.3K30

    ASp.NET MVC 路由「建议收藏」

    路由 ASP.NET MVC Route—转发请求: 1.客户端发起请求 2.到达IIS 3.转发到程序集 4.经过一个路由匹配–转发到匹配的控制器中 5.匹配的action去处理 RouteConfig...中如果有多个路由,从上到下进行匹配, 按照路由url中的正则表达式进行匹配, 在命中url后找不到Controller或View则使用defaults中的默认参数 public static void...routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); //在MVC之前,WebFrom开发,IIS通过aspx后缀进行匹配...//后来MVC出现之后,通过IIS补丁,追加后缀进行识别匹配 //IIS升级,不需要补丁 //于是需要忽略掉带axd的请求 /...year=2021&month=12&day=02"作为一个参数 //路由规则是key-value的形式 //如果路由是多个,name的值不能相同,

    49620
    领券