您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關ASP.NET MVC如何實現對URL匹配操作,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
{parameter}:花括弧加任意長度的字符串,字符串不能定義成controller和action字母。默認的就是模糊匹配。
例如:{admin}。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MVCURLMatch { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // 1、使用parameter做模糊匹配 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } }
字面值即一個常數字符串,外面不能有{}。這個字符串可以在大括弧與大括弧之間,也可以在最前面和最后面。
例如:admin/{controller}/{action}/{id}
URL1:/admin/home/index/1 可以與上面定義的路由匹配。
URL2:/home/index/1 不可以與上面定義的路由匹配(缺少字面量admin)
// 2、使用字面量做精確匹配 routes.MapRoute( name: "Default2", url: "admin/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
URL里面缺少admin時的運行結果:
正確的URL:
注意:這時候admin也不區分大小寫。
兩個花括弧之間沒有任何的字面值是不可以的(兩個花括弧之間必須跟上一個固定的字母或者符合,否則無法區分是哪個參數)。
{language}-{country}/{controller}/{action}/{id} 正確
{language}{country}/{controller}/{action}/{id} 錯誤
// 3、不允許連續的URL參數 routes.MapRoute( name: "Default3", url: "{language}-{country}/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
運行結果:
可以使用上篇文件中介紹的獲取URL參數值的方式獲取language和country參數的值,這里不在講述如何獲取。
使用*來匹配URL剩余的部分,如*plus放在一個表達式的尾部,最后尾部的URL部分會保存為plus為鍵名的字典值。
routes.MapRoute( name: "Default4", url: "{controller}/{action}/{id}/{*plus}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
在Index方法里面輸出plus參數的值:
public ActionResult Index(string plus) { string value = string.Format("plus={0}", plus); ViewData["msg"] = value; return View(); }
運行結果:
在URL表達式中有一種特殊的情況:就是URL表達式可能和實際的URL有多種匹配的情況,這時候遵守貪婪匹配的原則。
從上圖中可以看出,貪婪匹配的原則即從后往前匹配URL。
routes.MapRoute( name: "Default5", url: "{controller}/{action}/{id}/{filename}.{ext}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
在index方法里面分別獲取filename和ext參數的值,并輸出到頁面
關于“ASP.NET MVC如何實現對URL匹配操作”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。