有没有办法使用RouteMagic MVC重定向来保留查询字符串参数或所有参数?我需要旧网址: LegacyPage.aspx?q =值重定向到新建/新操作?q =值。下面的示例给出了一个奇怪的结果, New / NewAction?q = q ,而不是查询字符串的实际值。我尝试了各种各样的排列而没有运气。任何帮助将不胜感激。
var newRoute = routes.MapRoute(
"New",
"New",
new { controller = "New", action = "NewAction"}
);
routes.Redirect(r => r.MapRoute("Legacy", "LegacyPage.aspx"), true)
.To(newRoute);
答案 0 :(得分:0)
我还希望将查询字符串参数移动到目标网址。但我不能得到你的情况。我正在使用1.2版本的routeMagic。我查看了源代码:
public IHttpHandler GetHttpHandler(RequestContext requestContext) {
var requestRouteValues = requestContext.RouteData.Values;
var routeValues = AdditionalRouteValues.Merge(requestRouteValues);
var vpd = TargetRoute.GetVirtualPath(requestContext, routeValues);
string targetUrl = null;
if (vpd != null) {
targetUrl = "~/" + vpd.VirtualPath;
return new RedirectHttpHandler(targetUrl, Permanent, isReusable: false);
}
return new DelegateHttpHandler(
httpContext => httpContext.Response.StatusCode = 404, false);
}
似乎查询字符串参数似乎没有添加到targeUrl。