MVC 路由 概述

2021-09-03 10:57:26 字數 1968 閱讀 3319

設定url路由

url路徑中,大括號{}內部的代表引數。/作為分割符,不再大括號內的則作為常量。值得注意的是,和作為2個關鍵字由mvc路由控制,如果確實需要用這個名字命名引數,可以在前面加上@,例如。

預設的設定路由在global.asax檔案中

public static void registerroutes(routecollection routes)方法

routes.maproute(

"default", // route name

"//", // url with parameters

new // parameter defaults

new 是maproute中的預設值,意思就是什麼都不輸入的時候,controller的值和action的值也是必須有值的。

controller代表控制器,action代表這個控制器中的方法。必須要指定預設的controller和action,不然會報錯。

routes.maproute(

"default", // route name

"//", // url with parameters

new // parameter defaults

實際上是以下方法的一種簡寫形式:

route myroute = new route("//", new mvcroutehandler())

defaults = new routevaluedictionary( new //", // url with parameters

new

routes.maproute(

"specials", // route name

"dailyspecials/", // url with parameters

new // parameter defaults

這裡的specials將不會被匹配到。

url路由匹配的時候只匹配路徑部分,網域名稱和querystring不會被匹配到。

路由約束

可以使用正規表示式對引數進行驗證約束

routes.add(new route("articles/", new mvcroutehandler())

defaults = new routevaluedictionary(

new

constraints = new routevaluedictionary(new ",id22=@"\d" })

上面部分可以簡寫為如下**:

routes.maproute(null, "articles/",

new ,

new ",id22=@"\d" }

不定長度的路徑

使用*號匹配不定長度。

routes.maproute(null, "articles/",

new

可以匹配/articles/science/paleontology/dinosaurs/stegosaurus

匹配硬碟上的檔案

儘管設定了路由,但是如果在一些特殊的情況下,硬碟上真實存在的檔案和路由的url一致,這時系統會處理硬碟真實存在的檔案,而無視路由的存在。

arearegistration.registerallareas();

routetable.routes.routeexistingfiles = true;

registerroutes(routetable.routes);

routetable.routes.routeexistingfiles預設是false。

這樣設定了,就算檔案真實存在都會按照路由的方式處理。除了下面2種情況:

1.沒有任何匹配的路由。則仍然按照真實檔案處理。

2.使用了ignoreroute(),無視了一些路由。

MVC 路由 概述

設定url路由 url路徑中,大括號 內部的代表引數。作為分割符,不再大括號內的則作為常量。值得注意的是,和作為2個關鍵字由mvc路由控制,如果確實需要用這個名字命名引數,可以在前面加上 例如。預設的設定路由在global.asax檔案中 public static void registerrou...

MVC路由規則

路由解析過程 這是routing元件的兩個重要的作用!例項一 系統預設提供的路由格式,下面是系統給的預設 public static void registerroutes routecollection routes 2 axd 4 5 routes.maproute 6 default 路由名稱...

MVC雜記 路由

在學習mvc的過程中,記錄一些基礎但很必要的東西。學習mvc很多同學都喜歡使用預設的路由配置,而不關心怎麼去利用它實現一些複雜的或者自定義的配置,下面結合msdn一起學習一下 1.mvc路由有什麼用處?2.路由定義的 和非路由定義的 有什麼區別?答 在不使用路由的 asp.net 應用程式中,對 u...