Сохранение параметров строки запроса с RouteMagic MVC - PullRequest
4 голосов
/ 15 февраля 2012

Есть ли способ сохранить параметр строки запроса, или все они, с перенаправлением, используя RouteMagic MVC? Мне нужен старый URL: LegacyPage.aspx? Q = значение , чтобы перенаправить на New / NewAction? 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);

1 Ответ

0 голосов
/ 10 октября 2012

Я также хотел, чтобы параметры строки запроса были перемещены в целевой URL. Но я не могу понять даже твою ситуацию. Я использую 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);
}

И похоже, что параметры строки запроса не добавляются в targetUrl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...