ASP.NET MVC ActionResult View() not changing url

Brian David Berman picture Brian David Berman · Feb 6, 2011 · Viewed 14k times · Source

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?

Answer

Serge Wautier picture Serge Wautier · Feb 6, 2011

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.