ASP.NET MVC - How to Preserve ModelState Errors Across RedirectToAction?
Posted
by
RPM1984
on Stack Overflow
See other posts from Stack Overflow
or by RPM1984
Published on 2011-01-10T00:45:48Z
Indexed on
2011/01/10
0:53 UTC
Read the original article
Hit count: 234
Hi Guys,
I have the following two action methods (simplified for question):
[HttpGet]
public ActionResult Create(string uniqueUri)
{
// get some stuff based on uniqueuri, set in ViewData.
return View();
}
[HttpPost]
public ActionResult Create(Review review)
{
// validate review
if (validatedOk)
{
return RedirectToAction("Details", new { postId = review.PostId});
}
else
{
ModelState.AddModelError("ReviewErrors", "some error occured");
return RedirectToAction("Create", new { uniqueUri = Request.RequestContext.RouteData.Values["uniqueUri"]});
}
}
So, if the validation passes, i redirect to another page (confirmation).
If an error occurs, i need to display the same page with the error.
If i do return View()
, the error is displayed, but if i do return RedirectToAction
(as above), it loses the Model errors.
I'm not surprised by the issue, just wondering how you guys handle this?
I could of course just return the same View instead of the redirect, but i have logic in the "Create" method which populates the view data, which i'd have to duplicate.
Any suggestions?
© Stack Overflow or respective owner