日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
學(xué)習(xí)ASP.NETMVC路由的使用方法

這里,我們將學(xué)習(xí)到mvc中一個(gè)重要的特性即asp.net routing。這個(gè)模塊用來(lái)把用戶(hù)的請(qǐng)求映射到特定的mvc controller actions,看完這篇將可以知道標(biāo)準(zhǔn)路由表是怎么把請(qǐng)求映射到controller action的。

婺源網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,婺源網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為婺源上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的婺源做網(wǎng)站的公司定做!

使用默認(rèn)ASP.NET MVC路由表

當(dāng)創(chuàng)建好一個(gè)mvc應(yīng)用后,應(yīng)用已經(jīng)被配置好可以用asp.net routing了。ASP.NET MVC路由在兩個(gè)地方被激發(fā)。

一、asp.net routing在web.config中被激活,有關(guān)route的配置有四個(gè)配置節(jié):system.web.httpModules , system.web.httpHandlers , system.webserver.modules, the system.webserver.handlers,刪除這些配置節(jié)時(shí)要小心,因?yàn)闆](méi)有它們r(jià)outing將不再工作。

二、更重要的是,在global.asax文件中已經(jīng)創(chuàng)建了路由表,global.asax是一個(gè)包含了asp.net應(yīng)用生命周期內(nèi)事件句柄的特殊文件。路由表在Application Start 事件中被創(chuàng)建。

 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.Mvc;  
  6. using System.Web.Routing;  
  7.  
  8. namespace MvcApplication1  
  9. {  
  10.     // Note: For instructions on enabling IIS6 or IIS7 classic mode,   
  11.     // visit http://go.microsoft.com/?LinkId=9394801  
  12.  
  13.     public class MvcApplication : System.Web.HttpApplication  
  14.     {  
  15.         public static void RegisterRoutes(RouteCollection routes)  
  16.         {  
  17.             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  
  18.  
  19.             routes.MapRoute(  
  20.                 "Default",                                              // Route name  
  21.                 "{controller}/{action}/{id}",                           // URL with parameters  
  22.                 new { controller = "Home", action = "Index", id = "" } // Parameter defaults  
  23.             );  
  24.  
  25.         }  
  26.  
  27.         protected void Application_Start()  
  28.         {  
  29.             RegisterRoutes(RouteTable.Routes);  
  30.         }  
  31.     }  
  32. }  

當(dāng)程序運(yùn)行后,Application_Start() 方法被調(diào)用,同時(shí)調(diào)用方法內(nèi)的RegisterRoutes() 方法。這個(gè)方法創(chuàng)建了路由表。

默認(rèn)的ASP.NET MVC路由表中只含有一個(gè)叫做default的路由。這個(gè)默認(rèn)路由把url拆分成三個(gè)部分分別對(duì)應(yīng)controller,action和View。

當(dāng)請(qǐng)求URL:/Home/Index/3時(shí),下列代碼執(zhí)行:HomeController.Index(3)。

如果不指定controller,則默認(rèn)為Home,不指定Action則默認(rèn)為Index,不指定參數(shù)則默認(rèn)為空。

我們將通過(guò)例子來(lái)看一下到底默認(rèn)路由是怎么把URl映射到controller和action的。想象我們?cè)诘刂窓谥休斎肓巳缦耈RL:

/Home

由于默認(rèn)action為Index,所以下面的方法被調(diào)用

 
 
 
  1. using System.Web.Mvc;  
  2.  
  3. namespace MvcApplication1.Controllers  
  4. {  
  5.     [HandleError]  
  6.     public class HomeController : Controller  
  7.     {  
  8.         public ActionResult Index(string id)  
  9.         {  
  10.             return View();  
  11.         }  
  12.     }  
  13. }  

這個(gè)方法接受一個(gè)字符串類(lèi)型的id參數(shù),上面的URL執(zhí)行了這個(gè)方法,傳入一個(gè)空的id。

由于mvc框架引用controller actions的方式,/Home同時(shí)也會(huì)觸發(fā)下列事件

 
 
 
  1. using System.Web.Mvc;  
  2.  
  3. namespace MvcApplication1.Controllers  
  4. {  
  5.     [HandleError]  
  6.     public class HomeController : Controller  
  7.     {  
  8.         public ActionResult Index()  
  9.         {  
  10.             return View();  
  11.         }  
  12.     }  
  13. }  

這個(gè)方法不接受參數(shù),/Home將觸發(fā)這個(gè)Index(),同時(shí)/Home/Index/3也會(huì)調(diào)用這個(gè)方法,id參數(shù)將被忽略。

/Home也會(huì)與下面的方法匹配

 
 
 
  1. using System.Web.Mvc;  
  2.  
  3. namespace MvcApplication1.Controllers  
  4. {  
  5.     [HandleError]  
  6.     public class HomeController : Controller  
  7.     {  
  8.         public ActionResult Index(int? id)  
  9.         {  
  10.             return View();  
  11.         }  
  12.     }  
  13. }  

該方法接受一個(gè)int類(lèi)型的參數(shù)id,因?yàn)檫@個(gè)參數(shù)可以為null,該方法將被調(diào)用而不會(huì)產(chǎn)生任何錯(cuò)誤。

***調(diào)用下面的方法,這里會(huì)引發(fā)一個(gè)異常

 
 
 
  1. using System.Web.Mvc;  
  2.  
  3. namespace MvcApplication1.Controllers  
  4. {  
  5.     [HandleError]  
  6.     public class HomeController : Controller  
  7.     {  
  8.         public ActionResult Index(int id)  
  9.         {  
  10.             return View();  
  11.         }  
  12.     }  
  13. }  

因?yàn)檫@個(gè)參數(shù)是不可以為null的。以上就介紹了ASP.NET MVC路由的使用方法。

【編輯推薦】

  1. 淺析ASP.NET中的URL Rewrite
  2. 淺談ASP.NET MVC框架
  3. 介紹ASP.NET MVC中的MvcAjaxPanel
  4. ASP.NET MVC框架拯救UpdatePanel
  5. 用ASP.NET MVC源代碼尋找解決方案

網(wǎng)站標(biāo)題:學(xué)習(xí)ASP.NETMVC路由的使用方法
當(dāng)前網(wǎng)址:http://m.5511xx.com/article/dhgdede.html