Asp.Net MVC2.0 Url 路由入门

简介: 本篇文章是初识Asp.Net MVC2.0 的后续的介绍。此文将从Routing未开放源代码开始,还会对Asp.Net的Url重写技术做个简单介绍。并简单介绍Asp.Net MVC2.0 Url路由技术的使用。

     本篇文章是初识Asp.Net MVC2.0 的后续的介绍。此文将从Routing未开放源代码开始,还会对Asp.Net的Url重写技术做个简单介绍。并简单介绍Asp.Net MVC2.0 Url路由技术的使用。

     Url路由是MVC很重要的核心的一部分。不过它是单独于MVC项目,而且没有开源。它作为微软的一个独立的项目抽取了出来,在Asp.Net MVC中只是引用了这个dll。新建一个MVC Web项目,打开Global.asax。我们看到系统帮我们添加了using System.Web.Routing 引用。Routing作为一个单独的dll被我们的项目引用。微软并没有对Routing进行开放源代码。所以:Asp.Net MVC是开源的,但是Routing不是开源的!

     首先讲一下Asp.Net的Url重写技术。一种最简单实现Url重写技术就是在Global.asax文件中

     protected void Application_BeginRequest(object sender, EventArgs e)
     {

         string originalUrl = Request.Url.PathAndQuery;//获取原先的Url请求(假的请求)

       //转化成真的url请求....

       HttpContext.Current.RewritePath(newurl);//将针对Url请求交给HttpContext

     }

     举个例子:一个假的Url地址:http://www.xxx.com/news/sports-2009-1-1-201.html

     看到上面的那个url其实很多情况下那不是一个真正的url,不一定存在sports-2009-1-1.html这么一个html页。我们如果在Application_BeginRequest事件中将这个url重写成这样:

http://www.xxx.com/news/sports.aspx?date=2009-1-1&id=201 这才是真正的url!

     现在开始讲Asp.Net MVC的路由机制,首先要有个观念就是:Asp.Net MVC的url地址是表现的web程序的一个逻辑的结构。新建一个Asp.Net MVC Web项目。然后按F5直接可以运行。页面会自动跳转到http://localhost:端口号/Home/Index页面。玄机还是在Global.asax中。看下面代码:

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(
" {resource}.axd/{*pathInfo} " );

routes.MapRoute(
" Default " , // 路由名称
" {controller}/{action}/{id} " , // 带有参数的 URL
new { controller = " Home " , action = " Index " , id = UrlParameter.Optional }, // 参数默认值
new string [] { " MvcDemo.Controllers " }
);

 

 

Global.asax中的RegisterRoutes方法中注册了一个名字叫:Default的路由,格式是:
http://localhost:端口号/controller/action
并添加了这条路由的默认值new { controller
= "Home", action = "Index"}。所以我们按F5启动的时候,
地址栏是:
http://localhost:端口号/
这个样子,则匹配到我们的这条路由,并没有具体值,就匹配了我们的默认值。
页面会则自动跳转到http://localhost:端口号/Home/Index页面

先写到这,先回家吃饭!待续未完!
 

初识Asp.Net MVC2.0

初识Asp.Net MVC2.0【续】

Asp.Net MVC2.0 Url 路由入门---实例篇

Asp.Net MVC2.0 Url 路由入门

Asp.Net MVC3 简单入门第一季(一)环境准备

Asp.Net MVC3 简单入门第一季(二)详解Asp.Net MVC3项目

Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter

Asp.Net MVC3 简单入门第一季(四)详解Request Processing Pipeline

目录
相关文章
|
4月前
|
Python
路由(URL routing)
【8月更文挑战第23天】
36 4
|
4月前
|
前端开发 JavaScript 安全
入门Vue+.NET 8 Web Api记录(一)
入门Vue+.NET 8 Web Api记录(一)
150 4
|
16天前
|
程序员 C# 图形学
全面的C#/.NET自学入门指南
全面的C#/.NET自学入门指南
|
2月前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
42 2
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
64 8
|
3月前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
|
4月前
|
API 开发者 Python
"FastAPI路由大揭秘!轻松玩转URL映射,让你的Web应用路由设计既RESTful又灵活多变,秒杀传统框架的秘籍在这里!"
【8月更文挑战第31天】在Web开发中,路由是连接用户请求与后端逻辑的关键。FastAPI作为现代Python Web框架的佼佼者,以其简洁的API设计和高性能,提供了高度灵活的路由系统。本文通过开发一个博客系统的案例,详细介绍了FastAPI中路由的实现方法,包括基础路由定义、参数类型验证及路由分组与嵌套等,展示了如何轻松构建RESTful风格的URL映射,提升应用的可维护性和扩展性。
109 2
|
3月前
|
开发框架 .NET Java
C#/.NET/.NET Core自学入门指南
C#/.NET/.NET Core自学入门指南
|
4月前
|
开发框架 前端开发 .NET
七天.NET 8操作SQLite入门到实战 - (3)第七天Blazor学生管理页面编写和接口对接
七天.NET 8操作SQLite入门到实战 - (3)第七天Blazor学生管理页面编写和接口对接
|
4月前
|
开发者 Java UED
大文件传输不再头疼:揭秘Struts 2如何轻松应对文件上传与下载难题!
【8月更文挑战第31天】在Web应用开发中,文件上传与下载至关重要。Struts 2作为主流Java EE框架,凭借Commons FileUpload及文件上传拦截器简化了相关操作。本文探讨Struts 2在文件传输上的优势,通过具体配置与代码示例,展示如何设置最大文件大小、使用`fileUpload`拦截器以及实现文件上传与下载功能。对于大文件传输,Struts 2不仅能够轻松应对,还支持上传进度显示,有效提升了用户体验。总体而言,Struts 2为文件传输提供了高效便捷的解决方案,助力开发者构建稳定可靠的Web应用。然而,在处理大文件时需兼顾网络带宽与服务器性能,确保传输顺畅。
65 0