程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC Routing概述 C#描述

ASP.NET MVC Routing概述 C#描述

編輯:關於ASP.NET

ASP.NET Routing模塊的責任是將傳入的浏覽器請求映射為特有的MVC controller actions。

使用 默認的Route Table

當你創建一個新的ASP.NET MVC應用程序,這個應用程序已經被配置用來使用ASP.NET Routing。 ASP.NET Routing 在2個地方設置。第一個,ASP.NET Routing 在你的應用程序中的Web配置文件( Web.config文件)是有效的。在配置文件中有4個與routing相關的代碼片段:system.web.httpModules代碼段 ,system.web.httpHandlers 代碼段,system.webserver.modules代碼段以及 system.webserver.handlers代 碼段。千萬注意不要刪除這些代碼段,如果沒有這些代碼段,routing將不再運行。第二個,更重要的,route  table在應用程序的Global.asax文件中創建。這個Global.asax文件是一個特殊的文件,它包含ASP.NET 應用程序生命周期events的event handlers。這個route  table在應用程序的起始event中創將。

在Listing 1中包含ASP.NET MVC應用程序的默認Global.asax文件.

Listing 1 - Global.asax.cs

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/--> 1 public class MvcApplication : System.Web.HttpApplication
    {
        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 } // 參

數默認值
            );
    
        }
    
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
    
            RegisterRoutes(RouteTable.Routes);
        }
    }

當一個MVC應用程序第一個啟動,Application_Start() 方法被調用,這個方法反過來調用 RegisterRoutes() 方法。

這個默認的route  table包含一個單一的route。這個默認的route將 url的第一個段映射為一個controller名稱,url的第二個段映射為一個controller  action,第三個段映 射為命名為id的參數。

假如,你在網頁浏覽器的地址欄中鍵入下面的url:/Home/Index/3,這個默認的 route將這個url映射為下面的參數:

controller = Home     controller名稱

action = Index          controller  action

id = 3                       id的參數

當你請 求/Home/Index/3這樣的url,下面的代碼將執行。HomeController.Index(3)

這個默認的route包含3個 默認的參數。如果你沒有提供一個 controller,那麼 controller默認為Home。同樣,action默認為Index,id 參數默認為空字符串。

讓我們來看一些關於默認的route怎麼映射urls為controller  actions的例 子。假如你在你的浏覽器地址欄中輸入如下的url:/Home, 由於這些默認的route參數有一些相關的默認值, 鍵入這樣的URL,將導致HomeController類的Index()方法(如Listing 2)被調用。

Code 

highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 

1 namespace MvcRoutingApp.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index(string id)
        {
            ViewData["Message"] = "歡迎使用 ASP.NET MVC!";
    
            return View();
        }
    
        public ActionResult About()
        {
            return View();
        }
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved