Asp.Net MVC2.0 Url 路由入門(轉)
本篇文章是初識Asp.Net MVC2.0 的後續的介紹。此文將從Routing未開放原始碼開始,還會對Asp.Net的Url重寫技術做個簡單介紹。並簡單介紹Asp.Net MVC2.0 Url路由技術的使用。
Url路由是MVC很重要的核心的一部分。不過它是單獨於MVC專案,而且沒有開源。新建一個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中。看下面程式碼:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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頁面
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-675614/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RabbitMQ 入門 - 路由MQ路由
- Go 快速入門指南 - URLGo
- ASP.NET MVC 5 Web程式設計2 -- URL對映(路由原理)ASP.NETMVCWeb程式設計路由
- ASP.NET URL Rewrite. URL重寫ASP.NET
- linux路由知識入門Linux路由
- 實現登入url跳轉
- Go 1.22中路由 URL 路由引數Go路由
- ASP.NET Core 入門教程 5、ASP.NET Core MVC 檢視傳值入門ASP.NETMVC
- ASP.NET 路由ASP.NET路由
- 動態路由(URL引數)路由
- Flutter 入門指北(Part 6) 之路由Flutter路由
- ASP.NET MVC路由ASP.NETMVC路由
- Netty URL路由方案探討Netty路由
- Django基礎之二(URL路由)Django路由
- Flutter入門進階之旅(十三)Flutter 路由Flutter路由
- 【ASP.NET Core】URL重寫ASP.NET
- Blazor入門:ASP.NET Core Razor 元件BlazorASP.NET元件
- ASP.NET SignalR 2.0 入門指南ASP.NETSignalR
- ASP.NET入門五步詳解ASP.NET
- ASP.NET Web API 2 入門教程ASP.NETWebAPI
- 極簡 Node.js 入門 - 5.2 url & querystringNode.js
- linux新手入門――shell入門(轉)Linux
- Web API--入門--(一)ASP.NET Web API 2(C#)入門WebAPIASP.NET
- 【轉】Zookeeper入門
- Emacs入門(轉)Mac
- iptables 入門(轉)
- CSS入門(轉)CSS
- Go Web 程式設計入門--路由器GoWeb程式設計路由器
- Flask框架從入門到精通之路由(三)Flask框架路由
- ASP.NET Web API 路由ASP.NETWebAPI路由
- ASP.NET路由模型解析ASP.NET路由模型
- ABP(ASP.NET Boilerplate Project)快速入門ASP.NETProject
- Asp.Net Core入門之配置檔案ASP.NET
- ASP.NET CORE 入門教程(附原始碼)ASP.NET原始碼
- Asp.Net Core Grpc 入門實踐ASP.NETRPC
- Redis 入門與 ASP.NET Core 快取RedisASP.NET快取
- ASP.NET MVC4 入門簡介ASP.NETMVC
- 轉載:mybatis入門MyBatis