ASP.NET MVC 重点教程一周年版 第二回 UrlRouting 【转】
一、什么是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 【转】相关推荐
- ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper 【转】
许多时候我们会遇到如下场景 在写一个编辑数据的页面时,我们通常会写如下代码 1: <input type="text" value='<%=ViewData[" ...
- ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper
许多时候我们会遇到如下场景 在写一个编辑数据的页面时,我们通常会写如下代码 1: <input type="text" value='<%=ViewData[" ...
- ASP.NET MVC 重点教程一周年版 第八回 Helper之演化 【转】
凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...
- ASP.NET MVC 重点教程一周年版 第七回 UrlHelper 【转】
这节讲 一下ASP.NET MVC中的Helper. 何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组. 其实ASP.NET MVC的View是Aspx的页面,本身可以声明定义方 ...
- ASP.NET MVC 重点教程一周年版 第八回 Helper之演化
凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...
- asp.net 报表页面模板_Stimulsoft ASP.NET MVC报表教程:在设计器中保存报表模板
Stimulsoft Reports.Net最新版下载:https://www.evget.com/product/1071/download 本示例说明如何加载报表模板并在设计器中对其进行编辑. 首 ...
- 【译】ASP.NET MVC 5 教程 - 4:添加模型
原文:[译]ASP.NET MVC 5 教程 - 4:添加模型 在本节中,我们将添加一些管理电影数据库的类,这些类在ASP.NET MVC 应用程序中扮演"Model"的角色. 我 ...
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第一篇:准备工作
摘要 本文将简要介绍这个文章系列的目的.形式及大体内容.并且完成开始学习这个系列前所必要的准备工作. 前言 ASP.NET MVC作为微软官方的MVC解决方案,推出有一段时间了 ...
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇
摘要 本文对ASP.NET MVC的全局运行机理进行一个简要的介绍,以使得朋友们更好的理解后续文章. 前言 在上一篇文章中,我们实现了第一个ASP.NET MVC页面.对于没有 ...
最新文章
- c语言程序中的基本功能,c语言程序中的基本功能模块为什么?
- wordpress漏洞_聊聊 WordPress 5.1.1 CSRF to RCE 漏洞
- systemback-----做你折腾的后盾
- eclipse安装hadoop插件及配置
- Python编程基础:第三十二节 文件写入Write a File
- 统计数组中每个数字出现的次数_剑指Offer(二十八) 数组中次数出现超过一半的数字...
- 01背包问题:回溯法和限界分支、递归和迭代方式
- android开发学习之路——连连看之游戏逻辑(五)
- RHEL6基础之八查找、文件内容查看类命令
- Android的.apk软件安装到sd卡的方法
- Reactor模式和Proactor模式
- 求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序
- docker搭建zookeeper集群
- LA 3263 That Nice Euler Circuit (2D Geometry)
- 打造网站克隆、仿站工具、含源码(.NET CORE + selenium + chromedriver)
- 泛函分析 06.04 线性算子的谱理论 - 紧线性算子的谱
- Jquery 实现xml转json
- 347,猜数字大小 II
- simics虚拟机+solaris 9 sparc系统运行memory compiler(非常详细)
- CSS基础(P45-P65)