第二回 UrlRouting

2023-10-29 11:38
文章标签 urlrouting 第二回

本文主要是介绍第二回 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=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编写自己想要的页面呢?

这篇关于第二回 UrlRouting的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/300381

相关文章

【寒枫顾辞老航小说传】第二回:遗迹历险记

故事背景: 在一个名为“雅筑镇”的古老村落中,顾辞、老航和寒枫三人自幼便是形影不离的朋友。他们性格迥异,却彼此互补,共同度过了许多无忧无虑的日子。然而,随着年岁的增长,他们之间的友情逐渐受到了外界因素的影响,误会与矛盾开始滋生。三人因一次冒险而意外陷入危机,面对生死存亡,寒枫做出了一个震撼人心的决定,将生的希望留给了顾辞和老航。 人物设定: 顾辞:聪明机智,心思细腻,擅长谋划,但有时过于谨

【小竹韶IT】第二回 无线BBS的春天

(本内容仅代表作者独家观点,与任何组织和个人无关。)     这两天甘棠社区一上线,看官们可以看到,点击率在嗖嗖的往上蹿,72小时毕,4000次的点击率。20多用户参与了回帖和点赞的互动。反观西祠BBS上,一周的点击量都不能破百,互动几乎为0,看到这个,小竹感慨良多。是不是我们真的迈入了无线互联网时代。BBS这个从互联网刚诞生开始就产生的元老,又借无线端的应用又开始散发第二春了呢。

第二回 史大郎夜走华阴县 鲁提辖拳打镇关西- Linux新手快速入门

却说九纹龙史进跟朱武等三人约好了中秋赏月,却不料这天突然失火,房子都被一把火烧光。于是史进只好夜里跟着朱武等人一起离开华阴县。朱武劝他到少华山一起干,史进说:我的师傅王进,说要到延安府做事,我去投奔他去。 朱武三人挽留不住,也只好作罢。 史进到了经略省,认识了鲁提辖(鲁智深)和打虎将李忠,李忠也教过史进一些基础it技术,于是三个人一起去喝酒。史进谈起当年跟着李忠学习Linux入门的时光。 史进

《一分钟DBA》第二回 游戏上线发现性能隐患,怎么办?

欢迎大家扫码关注我们的公众号【HW云数据库】 ​​​​

Linux内核有什么之内存管理子系统有什么第二回 —— 单刀直入

接前一篇文章:Linux内核有什么之内存管理子系统有什么第一回 —— 引言 一、单刀直入 —— 一切从malloc开始 想必大家都使用过malloc(),malloc的全称是memory allocation,中文叫做动态内存分配。其用于申请一块连续的指定大小的内存块区域以void *类型返回分配的内存区域地址。 一般的工程师尤其是上层应用工程师知道怎么用这个函数就可以了,如果再能知道它

fantastic-matplotlib: 第二回:艺术画笔见乾坤

@[DataWhale打卡]第二回:艺术画笔见乾坤 艺术画笔见乾坤! 一、概述 讲了matplotlib的基本框架 即:matplotlib的原理或者说基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形。 1. matplotlib的三层api(Artist为主) matplotlib.backend_bases.FigureCanvas :代表了绘图区,所有的