RedirectToAction not changing URL or navigating to Index view

后端 未结 8 855
长情又很酷
长情又很酷 2020-12-01 07:49

I tried using a RedirectToAction after I have done a post to the controller and saved but the URL does not change and the redirect does not seem to work. I need

相关标签:
8条回答
  • 2020-12-01 08:06

    Try as below:

    return in your action:

    return Json(Url.Action("Index", "Home"));

    and in your ajax:

    window.location.href

    0 讨论(0)
  • 2020-12-01 08:18

    I decided to write this comment as a new answer because I think it needs more description and may someone can't see it in comments if has my problem. So I Apologize if you think this is not an answer and must be written in the comment section.

    In some cases, I used RedirectToAction to send the user to another action if input values are incorrect or insufficient and avoid continuing the current process as below:

    if (inputValues == null)
    {
      RedirectToAction("index");
    }
    

    That keeps not working and continues the current process to take unhandled error. I search and read some articles but I can't find a solution. Calling of RedirectToAction is not from Ajax code and routing is so simple without any parameters even. So why is not working? Finally, I found the simple mistake I did: Forgot to put "return" keyword before RedirectToAction. I changed the code as below:

    if (inputValues == null)
    {
      return RedirectToAction("index");
    }
    

    And that is worked. Hope this help.

    0 讨论(0)
  • 2020-12-01 08:20

    This is a bit late.... but I had the same problem in MVC5. I had 2 actions with the same name, which is common enough. I wasn't getting any errors that I could capture in Application_Error or OnException in the controller. I tried adding in the action, controller, area in the RedirectToAction route variable to no avail. I ended up renaming the POST action to EditPost and everything works now for me. Hope this helps.

    public ActionResult Edit(int id)
    {
        return View();
    }
    
    [HttpPost, ValidateAntiForgeryToken]
    public ActionResult Edit(MyInputModel myInputModel)
    {
        return View();
    }
    
    public ActionResult Create()
    {
        return RedirectToAction("Edit", new {id = 1});
    }
    
    0 讨论(0)
  • 2020-12-01 08:22

    I just came across this issue and nothing was working for me. It turned out the controller I was redirecting to required Authorization - the [Authorize] attribute was preventing any redirection

       [Authorize]//comment this out
       public class HomeController : Controller {...}
    

    Because I forgot to add app.UseAuthentication() to the code block in the Startup.cs.

       public void Configure(IApplicationBuilder app, IHostingEnvironment env)
       ...
       app.UseHttpsRedirection();
       app.UseStaticFiles();
       app.UseAuthentication();
       app.UseMvc(routes =>
       ...
    

    After adding the redirect began to work

    0 讨论(0)
  • 2020-12-01 08:25

    Check with firebug. Post might be returning a server error.

    0 讨论(0)
  • 2020-12-01 08:27

    I just came across this issue and nothing was working for me. It turned out the controller I was redirecting to required Authorization - the [Authorize] attribute was preventing any redirection.

    [Authorize]//comment this out
    public class HomeController : Controller {...}
    

    Down the road or in larger projects this may not be a desired fix, but if you're only looking for a simple redirection or starting out, this may be a solution for you.

    0 讨论(0)
提交回复
热议问题