• 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>
    /// 按1.2.3.4的序号看
    /// </summary>

    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=2012&month=3&day=29 的参数URL变为 
    /post/2012/3/29/ 这样的简短漂亮且有意义的URL

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

  • 相关阅读:
    lda spark 代码官方文档
    4.17 斐波那契数列 K维斐波那契数列 矩阵乘法 构造
    CF R 635 div1 C Kaavi and Magic Spell 区间dp
    CF R 635 div2 1337D Xenia and Colorful Gems 贪心 二分 双指针
    luogu P5043 【模板】树同构 hash 最小表示法
    CF R 633 div 1 1338 C. Perfect Triples 打表找规律
    CF 633 div1 1338 B. Edge Weight Assignment 构造
    4.15 省选模拟赛 哈密顿回路 折半搜索 双指针
    4.15 省选模拟赛 编码 trie树 前缀和优化建图 2-sat
    4.13 省选模拟赛 守卫 点分治 虚树
  • 原文地址:https://www.cnblogs.com/ayzhanglei/p/2422797.html
Copyright © 2020-2023  润新知