Asp.Net MVC2.0 Url 路由入門

來源:互聯網
上載者:User

     本篇文章是初識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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.