asp.net-mvc – 如何通过URL获取RouteData?
发布时间:2020-12-15 18:50:50 所属栏目:asp.Net 来源:网络整理
导读:我需要通过ASP.NET MVC应用程序中给定的URL字符串获取RoutData。 我发现了我需要模拟HttpContextBase基于我的URL字符串,然后将其传递给RouteTable.Routes.GetRouteData()方法在Route Parsing (Uri to Route)线程的方式。 如何模拟HttpContextBase通过URL字
我需要通过ASP.NET MVC应用程序中给定的URL字符串获取RoutData。
我发现了我需要模拟HttpContextBase基于我的URL字符串,然后将其传递给RouteTable.Routes.GetRouteData()方法在Route Parsing (Uri to Route)线程的方式。 如何模拟HttpContextBase通过URL字符串使用RouteTable.Routes.GetRouteData()检索RouteData? 解决方法
我使用
Moq来确定HttpContextBase的什么成员在GetRouteData()中使用。他们是:
>请求 > AppRelativeCurrentExecutionFilePath Request.AppRelativeCurrentExecutionFilePath应该返回路径?,我真正需要的,所以实用程序类可能是这样的: public static class RouteUtils { public static RouteData GetRouteDataByUrl(string url) { return RouteTable.Routes.GetRouteData(new RewritedHttpContextBase(url)); } private class RewritedHttpContextBase : HttpContextBase { private readonly HttpRequestBase mockHttpRequestBase; public RewritedHttpContextBase(string appRelativeUrl) { this.mockHttpRequestBase = new MockHttpRequestBase(appRelativeUrl); } public override HttpRequestBase Request { get { return mockHttpRequestBase; } } private class MockHttpRequestBase : HttpRequestBase { private readonly string appRelativeUrl; public MockHttpRequestBase(string appRelativeUrl) { this.appRelativeUrl = appRelativeUrl; } public override string AppRelativeCurrentExecutionFilePath { get { return appRelativeUrl; } } public override string PathInfo { get { return ""; } } } } } 如果你传递?/ Error / NotFound,例如,RouteUtils.GetRouteByUrl(“?/ Error / NotFound”)返回类似 RouteData.Values { controller = "Error",action = "NotFound" } 也许这将有助于任何人。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC&Windsor.Castle:使用与Ht
- asp.net – 使用t4从另一个程序集中读取web.config
- asp.net core系列 63 领域模型架构 eShopOnWeb项目分析 上
- asp.net-mvc – F#支持最新的asp.net 5和MVC6
- asp.net mvc 3区域和url路由配置
- asp.net-mvc-3 – 需要帮助区分WebMatrix,ASP.NET网页和Raz
- ASP.NET实现大文件上传和下载
- asp.net – 仅用于字母和数字的正则表达式验证器
- asp.net-mvc-3 – 如何重定向到一个URL?
- ASP.NET MVC模板助手 – 如何获取小写ID
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC – 使用表单发布多个
- asp.net – System.Web.Providers不适用于中等信
- asp.net-mvc – 防止在asp.net MVC 3中验证部分表
- asp.net 关于gridview使用的一些小技巧
- asp.net-mvc – ASP.NET MVC 3用户验证
- asp.net-mvc-5 – MVC AttributeRoute似乎忽略了
- asp.net-core – Namespace .AspNetCore.Hosting
- asp.net-mvc – 是否有一个用于ASP.NET MVC的玉模
- asp.net mvc webapi 实用的接口加密方法示例
- 构建ASP.NET应用程序 – 最佳实践
热点阅读