2012-02-15 61 views
4

有沒有辦法通過使用RouteMagic MVC重定向來保留查詢字符串參數或全部這些參數?我需要舊網址:LegacyPage.aspx?q =值重定向到New/NewAction?q =值。下面的例子給了我一個奇怪的結果,New/NewAction?q = q,而不是查詢字符串的實際值。我嘗試了各種排列,沒有運氣。任何幫助,將不勝感激。使用RouteMagic MVC保留查詢字符串參數

var newRoute = routes.MapRoute(
    "New", 
    "New", 
    new { controller = "New", action = "NewAction"} 
); 

routes.Redirect(r => r.MapRoute("Legacy", "LegacyPage.aspx"), true) 
    .To(newRoute); 

回答

0

我也希望查詢字符串參數被移動到目標url。但我甚至不能得到你的情況。我正在使用routeMagic的1.2版本。我期待的源代碼:

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。

相關問題