Is it possible to redirect to a different view from a controller?
For example, all my controllers inherit from a custom controller that has a constructor that I want to redirect to different view if certain criteria is not met.
Hope that makes sense.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
You can use the RedirectToAction() method, then the action you redirect to can return a View. The easiest way to do this is:
return RedirectToAction("Index", model);
Then in your Index method, return the view you want.
Method 2
if (true)
{
return View();
}
else
{
return View("another view name");
}
Method 3
The simplest way is use return View.
return View("ViewName");
Remember, the physical name of the “ViewName” should be something like ViewName.cshtml in your project, if your are using MVC C# / .NET.
Method 4
I am not 100% sure what the conditions are for this, but for me the above didn’t work directly, thought it got close. I think it was because I needed “id” for my view by in the model it was called “ObjectID”.
I had a model with a variety of pieces of information. I just needed the id.
Before the above I created a new System.Web.Routing.RouteValueDictionary object and added the needed id.
(System.Web.Routing.)RouteValueDictionary RouteInfo = new RouteValueDictionary();
RouteInfo.Add("id", ObjectID);
return RedirectToAction("details", RouteInfo);
(Note: the MVC project in question I didn’t create, so I don’t know where all the right “fiddly” bits are.)
Method 5
Here’s what you can do:
return View("another view name", anotherviewmodel);
Method 6
return RedirectToAction("index");
This is how I use it in the controller and actionresult that needs to be redirected.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0