Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET MVC重点教程一周年版 第二回 UrlRouting

ASP.NET MVC重点教程一周年版 第二回 UrlRouting2011-07-09 博客园 重典一、什么是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=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有关