views:

37

answers:

2

I'm posting a form from a partial view which is rendered via Html.RenderAction and I want after the form post to redirect to the same route from where the request came.

public ActionResult Index()
{
    return PartialView();
}

[HttpPost]
public ActionResult Index(FormModel input)
{
     ...
     return //Redirect to the same route
}

anybody knows how to do that ?

+1  A: 

I would add a query string to the the form post, which you can use to do the redirection in the controller action.

<form action="example.com/model/edit?returnurl=http://example.com/Form" method="post">

Controller action...

[HttpPost]
public ActionResult Index(FormModel input, string returnUrl)
{
     ...
     return Redirect(returnUrl);
}
Jace Rhea
+1  A: 

You could retrieve the UrlReferrer from the Request object:

return Redirect(HttpContext.Request.UrlReferrer.OriginalString);
Castrohenge
it works, but we loose the values that were in the forms, they aren't sent back
Omu