How to get an ASP.NET MVC Ajax response to redirect to new page instead of inserting view into Updat
Posted
by Jeff Widmer
on Stack Overflow
See other posts from Stack Overflow
or by Jeff Widmer
Published on 2009-10-08T15:23:09Z
Indexed on
2010/05/15
20:24 UTC
Read the original article
Hit count: 310
asp.net-mvc
|asp.net-mvc-ajax
I am using the Ajax.BeginForm to create a form the will do an ajax postback to a certain controller action and then if the action is successful, the user should get redirected to another page (if the action fails then a status message gets displayed using the AjaxOptions UpdateTargetId).
using (Ajax.BeginForm("Delete", null,
new { userId = Model.UserId },
new AjaxOptions { UpdateTargetId = "UserForm", LoadingElementId = "DeletingDiv" },
new { name = "DeleteForm", id = "DeleteForm" }))
{
[HTML DELETE BUTTON]
}
If the delete is successful I am returning a Redirect result:
[Authorize]
public ActionResult Delete(Int32 UserId)
{
UserRepository.DeleteUser(UserId);
return Redirect(Url.Action("Index", "Home"));
}
But the Home Controller Index view is getting loaded into the UpdateTargetId and therefore I end up with a page within a page. Two things I am thinking about:
- Either I am architecting this wrong and should handle this type of action differently (not using ajax).
- Instead of returning a Redirect result, return a view which has javascript in it that does the redirect on the client side.
Does anyone have comments on #1? Or if #2 is a good solution, what would the "redirect javascript view" look like?
© Stack Overflow or respective owner