我的要求是將一條URL(例如:http://www.mywebsite.com/的HelloWorld)到所需控制器(家庭),並且動作(索引類型= 1 &模式=視圖?)動態。在這裏我保存傳入的URL,目標控制器+動作+查詢字符串參數在數據庫中。爲此,我使用繼承MvcRouteHandler的自定義路由處理程序,並且在處理程序的GetHttpHandler方法中,我使用控制器名稱,操作,參數等更新路由數據值。這些工作都很好,但問題是我無法檢索查詢字符串params使用Request.Querystring [「type」],但可能獲取值作爲操作參數或從Request.RequestContext.RouteData.Values [「type」]。誰能告訴我,我們需要的變化,使使用的Request.QueryString發送新查詢字符串PARAMS到動作使用MVC定製路由
routes.MapRoute(
name: "CustomUrlRoute",
url: "{*CustomUrl}",
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional },
namespaces: new[] { "TestPortal.Controllers" },
constraints: new { controller = @"^(?!services)\w+$" }
).RouteHandler = new CustomUrlRouteHandler();