我的一个控制器的动作中有一个String,代表一个引用URL。当前请求的路由数据不是我正在寻找的(因为它是从另一个视图中的脚本标记调用的)。
我想找到推荐网址的操作和控制器。
有什么方法可以手动使用像“/ Product / 23”这样的字符串来查找控制器,并将字符串作为网址生成?
答案 0 :(得分:8)
我在几周前写过关于做这件事的博客:
答案 1 :(得分:4)
如果您只是想使用MVC方法,我可以使用它。
Uri returnUri = new Uri(returnUrl, UriKind.RelativeOrAbsolute);
if (!returnUri.IsAbsoluteUri)
{
returnUri = new Uri("http://localhost" + returnUrl); // localhost used just to get absolute URL
}
HttpContextWrapper httpContext = new HttpContextWrapper(
new HttpContext(new HttpRequest(String.Empty, returnUri.AbsoluteUri, String.Empty), new HttpResponse(TextWriter.Null))
);
RouteData routeData = RouteTable.Routes.GetRouteData(httpContext);