Redirect to Action is not working With ASP.NET core

11,617

You need to return method result, just add return to all redirect methods:

return RedirectToAction("Index", "Clients");

Redirect methods are returnig view, to show this view You need to return it.

More info about IActionResult

Share:
11,617
Simsons
Author by

Simsons

Love to write programs . Still learning and trying to explain the code to my self and others.

Updated on July 03, 2022

Comments

  • Simsons
    Simsons almost 2 years

    I have my login view which wants to redirect to Clients page after successful login.

    To do that I am using ,

    [HttpPost]
            public async Task<IActionResult> Login(LoginViewModel model)
            {
                if (ModelState.IsValid)
                {
                    var result = await _signInManager.PasswordSignInAsync(model.Username, model.Password, model.Rememberme, false);
    
                    if (result.Succeeded)
                    {
    
                        if (Request.Query.Keys.Contains("ReturnUrl"))
                        {
                            Redirect(Request.Query["ReturnUrl"].First());
                        }
                        RedirectToAction("Index", "Clients");
                    }
                    else
                    {
                        ModelState.AddModelError("", "Failed to login");
                        return View();
                    }
                }
    
                return View();
    
            }
    

    But after successful login , I am staying in current login page and not redirected to Client Page!! If I try to navigate to Client page using browser this works fine without any issue.

    • Admin
      Admin over 6 years
      Its return RedirectToAction(...); (your missing the return)
    • Tetsuya Yamamoto
      Tetsuya Yamamoto over 6 years
      return RedirectToAction("Index", "Clients"); => you need to return RedirectToActionResult there.