2009-11-11 20 views
0

Existe-t-il un équivalent pour l'objet ViewData/TempData dans ASP.NET MVC pour ASP.NET?Équivalent pour ViewData d'ASP.NET MVC pour ASP.NET?

Ce que je veux faire est de garder un élément de session seulement vivant pour une demande.

Merci d'avance!

Edit:

Le problème est que j'ai une vue pour la mise à jour et la création. Lorsque la vue est en mode de mise à jour, alors l'élément de session est rempli ou il doit être déjà rempli (!) Et en mode création l'élément de session est nul. Donc, quand je suis en mode création et renvoyer la page pour servir le mode changé en mode édition et un bouton sur la vue est activé parce que l'élément de session a été rempli. Le mode dépend de l'élément de session. Et l'élément de session peut être rempli par une autre vue ou lorsque je crée un contact avec succès. La valeur de l'élément de session est l'ID de contact.

Répondre

1

ViewState est le plus proche que vous pouvez avoir. il s'agit d'un stockage de persistance de page-portée, mais il survivra à de nombreuses demandes ultérieures à la même page.

Vous pouvez l'adapter à vos besoins. Initialisez une valeur RequestID dans le constructeur de la page et gardez-la dans la session étroitement couplée à la variable Session dont vous avez besoin. Lors de la lecture d'une session, vous pouvez simplement vérifier si l'identificateur pointe vers la requête en cours ou vers celle d'une génération précédente. C'est plus ou moins comment le TempData est implémenté.

Vous pouvez également consulter la collection RequestData. Il est cependant conservé pour la durée d'une requête seulement et n'est pas étendu à la demande suivante.

0

Vous pouvez utiliser l'objet request. Vous pouvez également trouver this page utile.

1

Pour une seule demande? Pas même une publication? Ensuite, vous pouvez simplement utiliser un champ ou une propriété protégée.