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
Try as below:
return in your action:
return Json(Url.Action("Index", "Home"));
and in your ajax:
window.location.href
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.
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});
}
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
Check with firebug. Post might be returning a server error.
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.