9
votes

ASP.NET: Comment puis-je maintenir des objets entre les post-packs?

Comment puis-je maintenir des objets entre ASP.NET PAGE POST DOSSS?

J'ai une page Web ASP.NET.Lorsque je clique sur un bouton ASP.NET, je vais appeler ma fonction (Enregistrer) qui créera un objet de ma classe personnalisée (classeDétails classe) et enregistrera les détails sur db.so Ceci est un post retour.Après que le post retour à nouveau la même page sera affiché à l'utilisateur.At cette heure, je souhaite prendre l'objet utilisateur que j'ai créé dans la première fonction (sauvegarde). Quelle est la meilleure façon de procéder ? Je sais que je peux le stocker dans une session et y accéder. Mais je veux savoir si vous y trouverez une autre meilleure façon?


0 commentaires

4 Réponses :


3
votes

Vous pouvez stocker l'objet dans ViewState, ce sera le stockage spécifique à la page. L'objet sera ensuite sérialisé et injecté dans la visualisation de la page, qui rendra la page plus grande.

En stockant l'objet dans la session, vous gardez la page plus petite mais consommez des ressources de mémoire serveur.

Alternativement, vous pouvez lire l'objet de la base de données à chaque fois. Cela aura l'avantage d'afficher exactement à l'utilisateur ce qui a été enregistré dans la base de données.


0 commentaires

7
votes

Une autre option serait de stocker l'objet dans le cache à l'aide d'une touche unique (E.G. "User" + ID) et ne stocke que son identifiant dans la session en cours ou dans la vieilleté. Lors d'un post-plan, vous pouvez ensuite récupérer l'objet du cache.

Avec cette approche, vous avez plusieurs avantages:

  • Vous avez moins de données dans votre session ou dans la vieilletate
  • Si un poteau est effectué, il vous suffit d'accéder à la base de données si l'objet n'est plus dans le cache
  • Si aucun post-plan n'est effectué, l'objet sera éventuellement supprimé du cache (libérer la mémoire)

0 commentaires

-1
votes

dans UI faire ce xxx

in bl xxx

dans dal xxx < / p>


0 commentaires

3
votes

L'approche que vous recherchez est une sorte de mécanisme de base de données qui lie les valeurs d'un objet (vous pouvez charger à partir de la base de données si elle existe déjà) sur votre webForm ASP.NET.

essentiellement que vous auriez ce qui suit:

  1. Vous affichez une forme Web vide avec des champs (I.E. Textboxes) pour les propriétés de votre objet
  2. L'utilisateur remplira le formulaire et appuyez sur Enregistrer
  3. Ensuite, le post-plan sera arrivé. Sur le pageload, vous pouvez détecter s'il s'agit d'un post-pack avec page.ispospostback et si oui, vous créez un nouvel objet et remplissez-le avec les valeurs entrées par l'utilisateur.
  4. Dans l'ONCLICK de votre bouton, vous appelez la méthode BL appropriée pour le stocker jusqu'au DB

    Cela ressemblerait (je l'écris hors de ma tête sans compilateur, alors prenez soin de vous :)) xxx

    Ce que je voulais Ajoutez hier, mais j'ai oublié depuis que je devais me dépêcher de:
    Vous pouvez aussi bien stocker vos objets dans la vieilletate ou la session, car d'autres décrits, mais j'ai vécu qu'il devrait être fait aussi rare que possible en raison des "inconvénients" suivants (de mon point de vue):

    • Vos objets doivent être sérialisables
    • Le stockage de la vieilletate augmentera drammatiquement la taille de votre page et ralentit ainsi le chargement de votre page. Remarque La visualisation est transférée sur le client et reculez chaque fois qu'un «post-plan» se produit. Si c'est la seule possibilité et que vous rencontrez des problèmes de performance, vous pouvez envisager essayer ce (mais cela devrait être l'exception !!)
    • stocker des objets de votre session peut mettre la charge sur le côté serveur, consommant la mémoire là-bas. Vous devez faire attention à stocker des objets dans votre session et éventuellement vous souciez de la destruction de ces objets si vous savez que vous n'en avez plus besoin.

      L'avantage de l'approche "Databindinging" que j'ai décrite est que vous n'avez pas ces problèmes, avec le "désavantage" d'avoir un nouvel objet frais à chaque fois. Vous devez donc prendre soin de la manipulation de votre état d'objet, c'est-à-dire de garder manuellement les identifiants à travers des arrivées, etc.


0 commentaires