ASP.NET Route学习笔记(1)

注:本文很多部分知识来自于蒋金楠老师的<ASP.NET MVC框架解密>,本人写纯粹是用作个人笔记,假如侵犯了您的权益,请联系我,我立刻删除

在ASP.NET MVC中URL路由通过对请求的URL进行解析,得到以Controller和Action名称为核心的路由数据。但是URL路由系统并不是专属于ASP.NET MVC的,而是直接建立在ASP.NET上,在System.Web.Routing 命名空间下,所以WebForm也可以使用路由对请求地址与物理文件的分离。

好的Url应该满足如下条件:

  1. URL应为获取某种资源提供信息,不一定是物理文件路径
  2. 简短易于记忆和拼写输入
  3. 可以反映出站点结构
  4. 应该是【可拆分】,用户移除末尾,进而获取公告层次信息
  5. 持久、不应改变

当一个请求Url过来的时候,首先

去App_Start文件夹的RouteConfig.cs里面,静态方法RegisterRoutes,有routes.MapRoute方法

这些方法就是一条条路由规则,你的请求url进来的话,会到这些路由规则从上向下匹配,直到匹配到合适的路由为止。

下面我们解析一下这些路由规则

routes.MapRoute(
name: "Default5",    //这个是路由规则的名字
url: "{controller}/{action}/{id}",   //带参数的URL  
defaults: new { controller = "Test", action = "TestIndex",id=UrlParameter.Optional}  //该路由参数的默认值(假如你在地址栏只输出http://localhost:/,那么会自动访问这个默认的控制器Test下面的TestIndex方法,如:http://localhost/Test/TestIndex,然而id是UrlParameter.Optional表示为可选的参数即可有可无)
);

除了我们一般惯例的 http://localhost/Test/TestIndex/1这个URL格式,我们还可以利用路由进行修改变成 http://localhost/Test-TestIndex-1

routes.MapRoute(
name: "Default5",    //这个是路由规则的名字
url: "{controller}-{action}-{id}",   //带参数的URL  
defaults: new { controller = "Test", action = "TestIndex",id=UrlParameter.Optional} //但是除了用"/"这个id是可选的,如果使用"-",则id必须填写

我们还可以在{controller}控制器前面加一个常量例如:admin

routes.MapRoute(
name: "Default5",    //这个是路由规则的名字
url: "admin/{controller}/{action}/{id}",   //带参数的URL  
defaults: new { controller = "Test", action = "TestIndex",id=UrlParameter.Optional}

时间: 2024-11-10 01:08:08

ASP.NET Route学习笔记(1)的相关文章

Asp.Net Identity学习笔记+MVC5默认项目解析_授权&Claim

Identity学习笔记 Asp.Net Identity学习笔记+MVC5默认项目解析_基础用法 Asp.Net Identity学习笔记+MVC5默认项目解析_授权&Claim Identity学习笔记授权以角色授权IdentityRoleRoleManager基于声明的(Claims)IPrincipalIIdentityCalimsIdentityClaim用户登入用户授权其他细节Claim Type命名空间 授权 最常用的授权就是给Controller或Action打上[Authori

Asp.Net Identity学习笔记+MVC5默认项目解析_第三方登入&授权总结

Identity学习笔记 Asp.Net Identity学习笔记+MVC5默认项目解析_基础用法 Asp.Net Identity学习笔记+MVC5默认项目解析_授权&Claim Asp.Net Identity学习笔记+MVC5默认项目解析_第三方登入&授权总结 Identity学习笔记第三方登入配置登入案例登入技术总结本地,已登入本地,未登入第三方登入 第三方登入 本文介绍Identity的第三方登入技术.到目前为止只介绍了CookieAuthentication这种授权方式,即浏览

[Asp.net本质论]学习笔记(1)

引言 之前大部分时间,一直在学c#,打算将asp.net本质论好好学习一下,之前虽然已经看了两边了,总感觉看过,没做笔记等于白看了,一点印象也没.打算将书中的代码,自己实现一下,在敲代码时要一直反思,为什么作者那样实现,如果是自己该如何实现? web应用程序 资源的地址——通用资源标识符(URI) 我们在浏览器地址栏中输入的内容统称为通用资源标识符(Universal Resource Identifier,URI),它有很多种形式,在web中我们通常使用统一资源定位符(Uniform Reso

ASP.NET MVC5学习笔记01

由于之前在项目中也使用MVC进行开发,但是具体是那个版本就不是很清楚了,但是我觉得大体的思想是相同的,只是版本高的在版本低的基础上增加了一些更加方便操作的东西.下面是我学习ASP.NET MVC5高级编程(5)的一些知识笔记,有些简单的操作没有进行记录,一些知识点就使用思维导图来写出大体的知识架构. MVC5是完全Bin部署的,也就是说我们最后发布的时候只是将Bin文件下面的应用程序的程序集发布就可以,对于服务器来说只需要有.NET 4.5就可以进行安装了. 一条至理名言"约定优于配置"

Asp.Net Mvc 学习笔记总结(自学第一天)

今天是第一天学习,主要总结了下面两个问题.由于是自学,总结的可能会有纰漏希望大家积极指正(微笑). 1.什么是Mvc?为什么要用Mvc? 2.如何使用Mvc快速实现入门级别的开发? 这里先说一下什么是Mvc:首先Mvc是一种架构模式:第二Mvc不等同于三层:第三Asp.net Mvc是延用了Mvc思想做出来的一款基于三层中的UI层的一款产品:那么Mvc架构模式是什么意思呢?当然这个架构模式20世纪80年代就已经提出来了.当时的提出的时候并没有标准的输入输出设备,只是为了单纯的区分开来输入.输出和

Asp.Net Identity学习笔记+MVC5默认项目解析_基础用法

前言ASP.NET Identity特性Identity包基本IdentityUserUserManager准备工作ApplicationDbContextApplicationUserManager注册案例登入案例用户信息验证用户名密码验证器自定义验证器 前言 本文简单介绍Identity的使用,使用的案例是基于默认的Mvc5项目(只勾选MVC,不勾选WebApi).读者可以拿着项目源码对照地看. ASP.NET Identity特性 One ASP.NET Identity 系统 更容易加入

ASP.NET MVC 学习笔记(1)

从头开始系统地学习ASP.NET MVC

Route学习笔记之Area的Route注册

前一段时间接触了MVC的Area可以将模型.控制器和视图分成各个独立的节点.分区之后,区域路由注册的需求就出来了. 默认的 在MVC项目上右键添加区域之后,在文件夹下会自动添加一个FolderNameAreaRegistration.cs的文件. public class AdminAreaRegistration : AreaRegistration { public override string AreaName { get { return "Admin"; } } publi

ASP.NET MVC4学习笔记

一.MVC简介 备注: 过去MVC模式并不适合小型甚至中等规模的应用程序,这样会带来额外的工作量,增加应用的复杂性.但现在多数软件设计框架,能直接快速提供MVC骨架,供中小型应用程序开发,此问题不再存在.对于开发存在大量用户界面,并且逻辑复杂的大型应用程序,MVC将会使软件在健壮性.代码重用和结构方面上一个新的台阶.尽管在最初构建MVC模式框架时会花费一定的工作量,但从长远的角度来看,它会大大提高后期软件开发的效率. 二.First Demo 三.Web开发方式对比 四.View详解 五.Con