как перенаправить на URL с параметром из контроллера asp.net-mvc - PullRequest
1 голос
/ 10 февраля 2011

У меня есть сайт asp.net-mvc, и одна из страниц

http://www.mysite.com/Report

пользователи могут добавить фильтрацию на стороне клиента, которая генерирует URL-адреса следующим образом:

http://www.mysite.com/Report?Region=US

я хочувзять ссылку, подобную этой:

http://www.mysite.com/MyLastReport

и иметь действие контроллера, которое имитирует, как если бы человек добавил некоторые параметры к URL-адресу, например так:

http://www.mysite.com/Report?Region=US

в качестве моего кода на стороне сервераиспользует:

 Request.Params[]

для фильтрации моих запросов, и я хочу использовать тот же путь кода для получения результатов, как если бы URL имел эти параметры на стороне клиента.

также естьв любом случае, чтобы буквально сделать перенаправление URL-адреса со стороны сервера, поэтому я на самом деле изменить URL-адрес в браузере:

http://www.mysite.com/Report?Region=US

1 Ответ

2 голосов
/ 10 февраля 2011

Добавьте в Global.asax следующее:

protected void OnBeginRequest(object sender, EventArgs e)
{
    if (Request.Url.AbsolutePath.Equals("/MyLastReport", StringComparison.OrdinalIgnoreCase)) {
        Context.RewritePath("/Report?Region=US");
    }
}

public override void Init()
{
    base.Init();
    BeginRequest += OnBeginRequest;
}

ОБНОВЛЕНИЕ: Из действия контроллера вы можете использовать RedirectToAction метод:

RedirectToAction("ReportActionName", new { Region = "US" });
...