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.
Author by
Brian David Berman
Updated on June 04, 2022Comments
-
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 about 13 years+1 for being as explicit as possible about views not able to redirect.
-
GP24 almost 9 yearsHow would this work if you had used controller.excute to redirect from a helper class or the global.asax?
-
GP24 almost 9 yearsHow would this work if you had used controller.excute to redirect from a helper class or the global.asax?