MVC3 RedirectToAction dans la méthode post et ViewBag suppression
je suis actuellement en train de travailler à une liste de données que j'ai besoin d'afficher dans une vue qui représentent une liste et de les afficher pour chaque élément de l'action correspondante, qui peuvent être exécutées, comme les modifier ou les supprimer. Pour l'édition il n'y a pas de problème concedering que c'est un point de vue particulier. Mon problème est quand je veux supprimer un élément, j'ai deux choix dans la méthode post.
//Call directly the list
[HttpPost]
[Authorize]
public ActionResult Delete(int itemId)
{
//logic to delete an item
ViewBag.Error = ""; //The result of the execution
return List();
}
La chose avec cette solution est que l'url n'est plus la même que la première : .../Liste, c'est .../Supprimer maintenant, je ne trouve pas cette solution, la grande, l'autre solution consiste à rediriger vers l'action, maintenant l'url est bonne, mais le message d'erreur dans le viewBag n'est plus visible, avez-vous une meilleure idée.
OriginalL'auteur Oflocet | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
TempData
persister des informations à travers une demande, et c'était le but de ce cas d'utilisation. Plutôt que d'utiliser leViewBag
utilisationTempData["Error"] = "";
à la place. Puis, sur la fin de réception que vous auriez un extrait de code comme le suivant:Voir ASP.NET TempData persiste entre les demandes et Quand utiliser ViewBag, ViewData, ou TempData dans ASP.Net MVC 3.
Ouais, j'ai utilisé de l'avoir dans la vue elle-même, mais j'ai eu beaucoup de logique dans la vue de traiter avec la variable qui à regarder. J'utilise le contrôleur de saisir toutes les informations nécessaires et de les passer à la vue.
Merci beaucoup Joshua pour la réponse, il fonctionne très bien, et merci pour la lecture des ressources.
OriginalL'auteur Joshua
Si vous faites une redirection, essayez d'utiliser
TempData
au lieu deViewBag
. TempData est un dictionnaire qui conserve les clés/valeurs dans la session de l'utilisateur jusqu'à la prochaine demande de page. Dans votre contrôleur:Dans votre Liste de point de vue que vous rediriger vers:
Ou si vous n'êtes pas à l'aide de rasoir:
OriginalL'auteur Mike Mertsock
À l'aide de
ViewBag
de POSTActionResult
:OriginalL'auteur