Почему функция Redirect () пытается перенаправить меня в тот же контроллер - PullRequest
0 голосов
/ 19 октября 2018

Я создаю обратный URL путем объединения многих строковых переменных, но для тестирования я использовал тестовую строку.

Он отлично работает в функции входа контроллера учетной записи:

[HttpPost]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
    /* irrelevant code lines */

    return Redirect( "SuiviFinancier/Niveau2?unitAdm=012"    /*returnUrl*/);
}

это перенаправление на правильный маршрут: / SuiviFinancier / Niveau2? UnitAdm = 012

Но эта функция перенаправления, используемая в другом контроллере, заставляет его автоматически добавлять имя контроллера передстрока, пример:

public class paramsVisuelController : Controller
{

    [HttpPost]
    public ActionResult Options(ParamsVisuel model)
    {
        return Redirect( "SuiviFinancier/Niveau2?unitAdm=012" );

    }
}

Выходной маршрут здесь: / paramsVisuel / SuiviFinancier / Niveau2? unitAdm = 012

Почему это так?MVC добавляет имя контроллера перед моей строкой?Но я этого не хочу.Это полный маршрут, включающий контроллер, так почему я хочу, чтобы текущее имя контроллера было добавлено перед ним?Это бессмысленно.

Описание: HTTP 404.

Требование URL: / paramsVisuel / SuiviFinancier / Niveau2

1 Ответ

0 голосов
/ 19 октября 2018

Обычно эту функцию следует использовать для перенаправления:

RedirectToAction("Niveau2", "SuiviFinancier", new { unitAdm = 012 });

. Это классический метод MVC для перенаправления на действие в контроллере.

Но если по какой-то причиневам нужна функция redirect() для правильной работы, не забудьте начать строку с косой черты, если она завершена:

return Redirect( "/SuiviFinancier/Niveau2?unitAdm=012");

или наклон и косая черта:

return Redirect( "~/SuiviFinancier/Niveau2?unitAdm=012");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...