web-dev-qa-db-fra.com

MVC C # TempData

Quelqu'un peut-il s'il vous plaît expliquer le but de TempData dans MVC. Je comprends que cela se comporte comme ViewBag mais que fait-il au-delà de cela.

16
Nate Pet

TempData est censé être une instance de très courte durée, et vous ne devriez l'utiliser que pendant les requêtes en cours et suivantes uniquement! Puisque TempData fonctionne de cette façon, vous devez savoir avec certitude quelle sera la prochaine demande , Et la redirection vers une autre vue est le seul moment où vous pouvez Garantir cela. Par conséquent, le seul scénario dans lequel l'utilisation de TempData Fonctionnera de manière fiable est lorsque vous effectuez une redirection. En effet, une redirection Supprime la requête en cours (et envoie le code d’état HTTP 302 Objet transféré au client), puis crée une nouvelle requête sur le serveur Afin de servir le serveur redirigé. vue. En regardant l'exemple précédent de code HomeController, cela signifie que l'objet TempData peut générer des résultats Différents de ceux attendus, car la requête suivante, Origine , Ne peut pas être garantie. Par exemple, la demande suivante peut provenir de Une instance d'ordinateur et de navigateur complètement différente.

http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications

22
Jakub Konecki

ViewBag

Permet de créer des propriétés dynamiques

Passage de données entre le contrôleur et la vue

Controller

ViewBag.Name= "Lion";

View

<div>
  <h4>@ViewBag.Name</h4>
 </div>

TempData

TempData est censé être une instance de très courte durée

vous ne devriez l'utiliser que pendant les requêtes en cours et suivantes

Le dictionnaire TempData est utilisé pour partager des données entre les actions du contrôleur.

TempData["Name"] = "Lion";

J'ai écrit un article de blog sur this.Check que Comment utiliser Asp.Net MVC TempData correctement?

9
Sampath

TempData est un objet dictionnaire dérivé de la classe TempDataDictionary et stocké dans une session à durée de vie réduite.

public TempDataDictionary TempData { get; set; }

C'est une propriété de la classe ControllerBase.Il est utilisé pour passer des données d'une requête en cours à une requête ultérieure (signifie rediriger d'une page à une autre). . Il est nécessaire de transtyper le texte pour obtenir les données et vérifier les valeurs NULL pour éviter les erreurs. Il est utilisé pour stocker uniquement les messages uniques comme les messages d'erreur, les messages de validation.

2
BIBIN K ONANKUNJU