一、什么是UrlRouting

你可以使用UrlRouting来配置一些URL的映射,使用户可以按你的规则来访问网站.
使用UrlRouting,一定要规定URL模式,它包括一个位置标识,它将在你请求网页时按这个规则返回给你内容. 当然,这个创建的规则完全是由你自己定义的.
上回说道如何访问index.aspx及about.aspx:

但是http://localhost/Views/Home/Index.aspx和 http://localhost/Views/Home/About.aspx这两个地址并无法直接访问以下两个文件:
Views/Home/Index.aspx 与 Views/Home/About.aspx

这是怎么回事呢,那我们要怎样才能访问呢 ?
答案是:
http://localhost/Home和http://localhost/Home/About
这是为什么呢?

这就是UrlRouting的功能,而这个功能的配置是由,URL的请求规则定义的,这个规则定义在Global.asax.cs中定义。

二、基本UrlRouting规则的定义

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;namespace MvcApplication2
{/// <summary>/// 还是老规矩,按序号看/// </summary>// Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801public class MvcApplication : System.Web.HttpApplication{// 4.注意: 将1标的规则更改为 "{controller}.mvc/{action}/{id}" 即可// 自行支持 IIS6 and IIS7 两种模式// 笔者注:一般的虚拟主机不支持.mvc,.aspx也要检查文件存在// 变通方法为可以将.mvc换成.ashx或.asbxpublic static void RegisterRoutes(RouteCollection routes){//5、此路径不受后面规则控制routes.IgnoreRoute("{resource}.axd/{*pathInfo}");//1、大家可以回忆一下Controller和Action的定义//因为MVC与传统Aspx的最大不同就是访问是//访问的Controller.Action即某类下的一个函数而不是aspx文件,//要展现给用户哪一个aspx文件是由Controller决定的(即默认的同名规则)//这个是文件默认自带的UrlRouting规则,是将Controller/Action/id的访问//模式指向对应的Controller及Actionroutes.MapRoute("Default",                                              // Route 名称"{controller}/{action}/{id}",                           // URL参数new { controller = "Home", action = "Index", id = "" } // 2、参数的默认值也就是如果各部分为空的话访问//HomeController下的Index这个Action);}protected void Application_Start(){ //3.这个没什么好讲了,就是在应用程序启动时初始化它RegisterRoutes(RouteTable.Routes);}}
}

注意这一点ASP.NET MVC 中URLRouting只与Controller/Action有关

三、UrlRouting解决的问题

UrlRouting是为了让Url更简短更有意义才出现的,例如:

post.aspx?year=1999&month=3&day=8 的参数URL变为
/post/1999/3/8/ 这样的简短漂亮且有意义的URL

而类似home/about.aspx?id=12,以示例中的Global.asax.cs中定义的{controller}/{action}/{id}规则为列
/Home/About/12其实就是访问
Controller="Home" Action="About" 它的一个QueryString参数为 id="12"

四、UrlRouting相关资料

System.Web.Routing入门及进阶 上篇

System.Web.Routing入门及进阶 下篇

System.Web.Routing 的说明文档

那么我们要怎么利用ASP.NET MVC编写自己想要的页面呢?

ASP.NET MVC 重点教程一周年版 第二回 UrlRouting 【转】相关推荐

  1. ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper 【转】

    许多时候我们会遇到如下场景 在写一个编辑数据的页面时,我们通常会写如下代码 1: <input type="text" value='<%=ViewData[" ...

  2. ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper

    许多时候我们会遇到如下场景 在写一个编辑数据的页面时,我们通常会写如下代码 1: <input type="text" value='<%=ViewData[" ...

  3. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化 【转】

    凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...

  4. ASP.NET MVC 重点教程一周年版 第七回 UrlHelper 【转】

    这节讲 一下ASP.NET MVC中的Helper. 何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组. 其实ASP.NET MVC的View是Aspx的页面,本身可以声明定义方 ...

  5. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化

    凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...

  6. asp.net 报表页面模板_Stimulsoft ASP.NET MVC报表教程:在设计器中保存报表模板

    Stimulsoft Reports.Net最新版下载:https://www.evget.com/product/1071/download 本示例说明如何加载报表模板并在设计器中对其进行编辑. 首 ...

  7. 【译】ASP.NET MVC 5 教程 - 4:添加模型

    原文:[译]ASP.NET MVC 5 教程 - 4:添加模型 在本节中,我们将添加一些管理电影数据库的类,这些类在ASP.NET MVC 应用程序中扮演"Model"的角色. 我 ...

  8. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第一篇:准备工作

    摘要       本文将简要介绍这个文章系列的目的.形式及大体内容.并且完成开始学习这个系列前所必要的准备工作. 前言       ASP.NET MVC作为微软官方的MVC解决方案,推出有一段时间了 ...

  9. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇

    摘要       本文对ASP.NET MVC的全局运行机理进行一个简要的介绍,以使得朋友们更好的理解后续文章. 前言       在上一篇文章中,我们实现了第一个ASP.NET MVC页面.对于没有 ...

最新文章

  1. c语言程序中的基本功能,c语言程序中的基本功能模块为什么?
  2. wordpress漏洞_聊聊 WordPress 5.1.1 CSRF to RCE 漏洞
  3. systemback-----做你折腾的后盾
  4. eclipse安装hadoop插件及配置
  5. Python编程基础:第三十二节 文件写入Write a File
  6. 统计数组中每个数字出现的次数_剑指Offer(二十八) 数组中次数出现超过一半的数字...
  7. 01背包问题:回溯法和限界分支、递归和迭代方式
  8. android开发学习之路——连连看之游戏逻辑(五)
  9. RHEL6基础之八查找、文件内容查看类命令
  10. Android的.apk软件安装到sd卡的方法
  11. Reactor模式和Proactor模式
  12. 求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序
  13. docker搭建zookeeper集群
  14. LA 3263 That Nice Euler Circuit (2D Geometry)
  15. 打造网站克隆、仿站工具、含源码(.NET CORE + selenium + chromedriver)
  16. 泛函分析 06.04 线性算子的谱理论 - 紧线性算子的谱
  17. Jquery 实现xml转json
  18. 347,猜数字大小 II
  19. simics虚拟机+solaris 9 sparc系统运行memory compiler(非常详细)
  20. CSS基础(P45-P65)

热门文章

  1. BuckleScript 1.0发布,面向OCaml的开源JavaScript编译器
  2. 王高利:TCP Wrappers访问控制(hosts.allow,hosts.deny)
  3. 【优秀奖】Java开发那点事征文
  4. struts 普通的action
  5. 1.1.12 增加页眉横线
  6. 复杂数据权限设计方案
  7. JavaScript 的简单学习2
  8. linux c下,从路径名中分离文件名
  9. hadoop 2.x HA(QJM)安装部署规划
  10. 网页无法显示验证码的方法