J'utilise de l'Ajax.BeginForm pour créer un formulaire, la volonté de faire une requête ajax publication à une certaine action de contrôleur et puis, si l'action est réussie, l'utilisateur doit être redirigé vers une autre page (si l'action échoue, un message d'état s'affiche à l'aide de la 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]
}
Si la suppression est réussi je suis de retour d'une Rediriger le résultat:
[Authorize]
public ActionResult Delete(Int32 UserId)
{
UserRepository.DeleteUser(UserId);
return Redirect(Url.Action("Index", "Home"));
}
Mais la Maison de Contrôleur de la vue Index devient chargé dans le UpdateTargetId et donc je me retrouve avec une page dans une page. Deux choses que je pense à propos de:
- Soit je suis l'architecture de cette mal et doit gérer ce type de action différemment (pas à l'aide d'ajax).
- Au lieu de retourner une Redirection résultat, retour d'une vue qui a javascript qui ne l' redirection sur le côté client.
Quelqu'un aurait-il des commentaires sur #1? Ou si #2 est une bonne solution, ce serait la "redirection javascript vue"?