ASP.NET MVC 重点教程一周年版 第二回 UrlRouting

简介: 一、什么是UrlRouting 你可以使用UrlRouting来配置一些URL的映射,使用户可以按你的规则来访问网站. 使用UrlRouting,一定要规定URL模式,它包括一个位置标识,它将在你请求网页时按这个规则返回给你内容.

一、什么是UrlRouting


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

但是http://localhost/Views/Home/Index.aspxhttp://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=9394801
    public class MvcApplication : System.Web.HttpApplication
    {
        // 4.注意: 将1标的规则更改为 "{controller}.mvc/{action}/{id}" 即可
        // 自行支持 IIS6 and IIS7 两种模式
        // 笔者注:一般的虚拟主机不支持.mvc,.aspx也要检查文件存在
        // 变通方法为可以将.mvc换成.ashx或.asbx

        public 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及Action
            routes.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编写自己想要的页面呢?

目录
相关文章
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
35 7
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
50 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
44 0
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
|
6月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
180 0
|
6月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
75 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
162 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
96 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
167 0
|
SQL 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(开篇)
[回馈]ASP.NET Core MVC开发实战之商城系统(开篇)
210 0

相关实验场景

更多