为ASP.NET MVC应用添加自定义路由

这里,我们将学习如何给asp.net mvc应用添加自定义路由。用自定义路由来修改默认路由表。

对一些简单的asp.net mvc应用,默认的路由表就已经足够了。但是,当你需要创建特殊的路由时,就需要创建自定义路由了。

假设正在进行一个blog项目的开发,希望处理用户的请求地址如下:

/Archive/12-25-2009

当用户输入这个URL时,你想返回日期12-25-2009的blog入口,为了实现这个路由,需要添加自定义路由。

在这个asp.net mvc应用中,这个方法中含有一个自定义路由,叫做blog,它可以接受像/Archive/entydate类型的url。

这里我们需要把自定义的路由放在默认路由的上面,如果颠倒了,则还是总会请求默认的路由表。

我们自定义的路由会匹配以archive开头的url,像下面这些url都会被它处理。

/Archive/12-25-2009

/Archive/10-6-2004

/Archive/apple

自定义路由映射请求的url为ArchiveController,并且执行Entry()action。当entry方法被调用时,entrydate被作为该方法的参数传递过来。

ArchiveController代码如下

我们看到,entry方法接受了一个datetime类型的参数,mvc框架足够的漂亮来自动转换entrydate为datetime类型,如果url中的entrydate不能顺利转换为datetime,则会报错。

以上就是asp.net mvc应用中自定义路由的方法。

时间: 2024-08-04 18:35:08

为ASP.NET MVC应用添加自定义路由的相关文章

[翻译:ASP.NET MVC 教程]创建路由约束

赶集要发:http://www.ganji18.com 你使用路由约束来使浏览器请求限制在匹配特定路由的中.你可以使用一个正则表达式来具体化一个路由约束. 例如,设想你已在Global.asax文件中定义了清单1中的路由. 清单1--Global.asax.cs routes.MapRoute( "Product", "Product/{productId}", new {controller="Product", action="De

【翻译】ASP.NET MVC 5属性路由

原文链接:http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx#why-attribute-routing 最近在学习MVC相关的东西,今天刚好到msdn上看到了这样的一片文章,感觉不错,于是决定将它翻译出来和博友们一起分享下.我第一次发表文章,有不对的地方非常欢迎指出. —— 写在前面 废话不多说了,咱们开始吧 路由是ASP.NET MVC 怎样去用一个URI去匹配一个

ASP.NET MVC学习之路由篇(1)

原文:ASP.NET MVC学习之路由篇(1) 一.前言 作为一个从ASP.NET转入到ASP.NET MVC的开发人员而言,可能在开发ASP.NET网站的时候就已经开始在使用路由了. 只不过在ASP.NET MVC中路由是关键部分,而在ASP.NET中需要自行加进去.下面我们将学习ASP.NET MVC中的路由 系统. 二.准备工作 1.新建一个ASP.NET MVC4项目 2.模板选择空 3.在Controllers中添加一个Home控制器 4.打开App_Start中的RouteConfi

如何在asp.net mvc中添加自定义的HTML辅助种方法

很久没在博客园发表文章了,今天来总结一下如何在asp.net mvc中添加自定义的HTML辅助方法.我们现在设计这么一个目前,利用自定义的HTML方法来渲染一个普通的img标记.直接进入主题吧: 首先我们先来看一下一个普通的img标签在HTML中的代码: <img src="Content/images/封面.jpg" alt="图片" id="img01" width="500px" height="250p

[ASP.NET MVC] URL网址路由包含&ldquo;/&rdquo;斜线

ASP.NET MVC 网址包含"/"斜线 笔者碰到一个状况是,URL带入的参数是可能有"/"斜线的(使用者输入)像是以下 1.运行正常 http://localhost:45405/Home/Product?name=HTC/M8/手机套 2.运行正常 http://localhost:45405/Home/Product?name='抗涨'白人牙膏_特大号 到目前为止都还没问题,但我们为了让URL好看以及优化SEO,我们会做URL Rewriting像是以下 1

ASP.NET MVC学习之路由篇(3)

根据路由输出链接 既然是网站开发自然少不了链接,我们已经学会了强大的路由,但是还缺少一步就是能够将这些路由的路径输出到页面,下面我们就开始学习如何输出路由路径. 首先我们的路由注册部分如下所示: 1 namespace MvcStudy 2 { 3 public class RouteConfig 4 { 5 public static void RegisterRoutes(RouteCollection routes) 6 { 7 routes.Add(new Route("MyTest&q

ASP.NET MVC学习之路由篇(2)

7.解决与物理路径的冲突 当发送一个请求至ASP.NET MVC时,其实会检查网站中存不存在这个请求的物理路径文件,如果存在的话,就会直接将这个物理文件返回.但是有时候我们需要它执行控制器的某个方法,而不是直接将这个物理文件返回.那么我们就需要这节知识.下面我们先在网站根目录中新建一个 Test.html ,在其中随便写上一些内容,然后访问.再在RouteConfig.cs中写入如下代码: 1 public class RouteConfig 2 { 3 public static void R

ASP.NET MVC学习之路由篇

1.URL路径和路由配置中的路径对比 2.由上面的图,我们可以得出下面的一组路由数据 3.二义性 如果我们在Models中也新建一个Home控制器,那么你会发现重新刷新之后报错了.而这个是因为无法确定到底选择哪个控制器来响应该请求的缘故,当然你认为只要我们不新建重名的控制器就可以了,这样你只能控制你的项目中不出现,但是你却无法控制你加载的类库中不会出现,但是ASP.NET MVC已经提供了解决方案给我们,如下改正 RouteConfig.cs: public class RouteConfig

ASP.NET MVC 的URL路由介绍

在这个教程中,向你介绍每个ASP.NET MVC一个重要的特点叫做URL路由.URL路由模块是负责映射从浏览器请求到特定的控制器动作. 在教程的第一部分,你将学习标准路由表如何映射到控制器的动作.在教程第二部分,你将学习如何修改默认路由表成为自定义路由. 使用默认路由表 当你创建一个新的ASP.NET MVC 应用程序,应用程序已经配置了默认的URL路由.URL路由在两个地方设置. 第一,URL路由配置在你的应用程序WEB配置文件中(Web.config文件).文件中有四个有关路由的配置 节:s