如何通过URL获取RouteData?
我需要通过 ASP.NET MVC 应用程序中给定的 URL 字符串获取 RoutData
。
我找到了需要根据 URL 字符串模拟 HttpContextBase
的方法,然后将其传递给 路由解析(Uri 到路由) 线程。
如何使用 RouteTable.Routes.GetRouteData()
模拟 HttpContextBase
以通过 URL 字符串检索 RouteData
? 或者还有其他方法通过 URL 检索 RouteData
吗?
I need to get RoutData
by given URL string in ASP.NET MVC application.
I've found the way that I need to mock HttpContextBase
based on my URL string and then pass it to RouteTable.Routes.GetRouteData()
method in Route Parsing (Uri to Route) thread.
How to mock HttpContextBase
to retrieve RouteData
by URL string using RouteTable.Routes.GetRouteData()
?
Or is there another way to retrieve RouteData
by URL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用 Moq 来确定
HttpContextBase
的哪些成员用于GetRouteData()
。它们是:Request.AppRelativeCurrentExecutionFilePath
应该返回带有~
的路径,这是我真正需要的,所以实用程序类可能像这样:然后,您可以像这样使用它this(例如在
~/Error/NotFound
上):应该返回一个如下所示的对象:
I used Moq to determine what members of
HttpContextBase
are used inGetRouteData()
. They are:Request.AppRelativeCurrentExecutionFilePath
should return path with~
, what I exactly need, so utility class may be like this one:Then, you can use it like this (for example on
~/Error/NotFound
):Which should return an object that looks like this:
这对我有用(.NET 4.5,MVC 5):
https://average-joe.info/url-to-route-data/
This works for me (.NET 4.5, MVC 5):
https://average-joe.info/url-to-route-data/