Matt Mitchell Matt Mitchell - 5 months ago 11
C# Question

How to RedirectToAction in ASP.NET MVC without losing request data

Using ASP.NET MVC there are situations (such as form submission) that may require a


One such situation is when you encounter validation errors after a form submission and need to redirect back to the form, but would like the URL to reflect the URL of the form, not the action page it submits to.

As I require the form to contain the originally
ed data, for user convenience, as well as validation purposes, how can I pass the data through the
? If I use the viewData parameter, my
parameters will be changed to


The solution is to use the TempData property to store the desired Request components.

For instance:

public ActionResult Send()
    TempData["form"] = Request.Form;
    return this.RedirectToAction(a => a.Form());

Then in your "Form" action you can go:

public ActionResult Form()
    /* Declare viewData etc. */

    if (TempData["form"] != null)
        /* Cast TempData["form"] to 
        and use it */

    return View("Form", viewData);