ASP.NET MVC ActionResult View() not changing url

14,269

Solution 1

The View(...) methods don't redirect, they simply render out the specific view on the current request. If you need to target a specific url in the form of your view, you can pass in the controller/action details to the form method:

Html.BeginForm("action", "controller")

... etc

Solution 2

If you want to change the URL, you need a redirection to the action associated with that URL, such as

[HttpPost] 
public ActionResult Start(SomeViewModel someViewModel) 
{
  ...
  return RedirectToAction("SomeOtherAction");
}

The action SomeOtherAction will in turn display the view.

Share:
14,269
Brian David Berman
Author by

Brian David Berman

Updated on June 04, 2022

Comments

  • Brian David Berman
    Brian David Berman almost 2 years

    I have a method...

    [HttpPost]
    public ActionResult Start(SomeViewModel someViewModel) { ... }
    

    that based on some conditions returns things like return View("Invalid"), View("NotFound"), View("Run", anotherViewModel), etc. The problem is that no matter what view I present, the URL does not change to reflect the new controller/action. This poses a problem when my View wants to post to a different action. How can I fix this?

  • Serge Wautier
    Serge Wautier about 13 years
    +1 for being as explicit as possible about views not able to redirect.
  • GP24
    GP24 almost 9 years
    How would this work if you had used controller.excute to redirect from a helper class or the global.asax?
  • GP24
    GP24 almost 9 years
    How would this work if you had used controller.excute to redirect from a helper class or the global.asax?