Comment peut-ViewBag données enregistrées après un post de formulaire?
J'ai donc un ViewBag.Something
et ces données sont générées de manière aléatoire. De mon point de vue, j'ai mis cela à un label comme @Html.LabelFor(m => m.Something, (string)ViewBag.Something)
. Cela fonctionne bien mais quand je soumettre le formulaire, il pourrait y avoir des erreurs, et si il y a des erreurs, j'ai besoin de cette étiquette de rester le même, je ne veux pas dynamique aléatoire des données plus donc je ne dirais pas la méthode de contrôleur qui a généré ce ViewBag. Est-il un moyen de conserver cette valeur sans avoir une variable privée dans mon contrôleur? Certains de bien belle façon qui MVC/Rasoir t-il?
OriginalL'auteur Pittfall | 2012-06-12
Vous devez vous connecter pour publier un commentaire.
Option 1:
Passer la valeur de "ViewBag.Quelque chose" pour le Contrôleur en route à l'aide de Valeurs:
Option 2:
Vous pouvez utiliser TempData.
Passage De L'État Entre Les Méthodes D'Action
Méthodes d'Action peut avoir pour transmettre des données à une autre action, comme si une erreur se produit lorsqu'un formulaire est posté, ou si la méthode doit rediriger vers d'autres méthodes, comme cela pourrait se produire lorsque l'utilisateur est dirigé vers une vue login et ensuite, retour à l'origine de la méthode d'action.
Une méthode d'action peut stocker des données dans le contrôleur de TempDataDictionary objet avant qu'il appelle le contrôleur de RedirectToAction méthode pour appeler à l'action suivante. Le TempData la valeur de la propriété est stocké dans l'état de session. Toute méthode d'action qui est appelée après que le TempDataDictionary valeur est définie pouvez obtenir les valeurs de l'objet, puis de traiter ou de les afficher. La valeur de TempData persiste jusqu'à ce qu'il est en lecture ou jusqu'à ce que la session expire. La persistance de TempData de cette manière permet de scénarios tels que la redirection, car les valeurs dans TempData sont disponibles au-delà d'une simple demande.
Voir ma mise à jour pour une option de plus que vous pouvez essayer.
Merci pour l'aide, il a l'air bon, mais je suis allé dans une direction différente donc je ne peux pas accepter votre réponse
J'ai le même problème pouvez-vous partager votre solution? Merci.
OriginalL'auteur Kapil Khandelwal
Dans le, mettre en place un modèle, définir dynamiquement et quand
return view()
est en cours d'exécution, nereturn view(model)
. Puis dans la vue, mettre en place un champ caché qui peut garder sur le passage de la valeur nécessaire. J'ai choisi d'aller dans cette voie parce que je n'ai pas à vous soucier de tout serveur de code pour faire ce travail sur un post et je n'ai pas à vous soucier de toutes les sessions.OriginalL'auteur Pittfall
L'affichage de message dans le viewbag après l'affichage (j'ai de l'utilisateur de cette méthode)
La Valeur est de l'envoyer à la méthode get..
OriginalL'auteur