【发布时间】:2010-04-24 00:25:34
【问题描述】:
我正在尝试从我的路由表中获取一个 URL。方法如下。
private static void RedirectToRoute(ActionExecutingContext context, string param)
{
var actionName = context.ActionDescriptor.ActionName;
var controllerName = context.ActionDescriptor.ControllerDescriptor.ControllerName;
var rc = new RequestContext(context.HttpContext, context.RouteData);
string url = RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(new { actionName = actionName, controller = controllerName, parameter = param })).VirtualPath;
context.HttpContext.Response.Redirect(url, true);
}
我正在尝试将其映射到。但是 RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(new { actionName = actionName, controller = controllerName, parameter = param })) 一直给我null。有什么想法吗?
routes.MapRoute(
"default3", // Route name
"{parameter}/{controller}/{action}", // URL with parameters
new { parameter= "parameterValue", controller = "Home", action = "Index" }
);
我知道我可以使用redirectToAction 和其他方法,但我想用新的路由数据更改浏览器中的URL。
【问题讨论】: