2 votes

Enregistrer les données dans MVC

Cette solution m'a échappé toute la journée. Je récupère des données de ma base de données, mais j'aimerais sauvegarder les données quelque part au lieu d'aller à la base de données pour chaque page. Comment puis-je faire cela ?

Je récupère les données de mon contrôleur...

public ActionResult Inquiry(string Num, DateTime Date)
{  ...
   Bill myBill = new Bill(Num, Date, myConnections);      
   //C'est ici que j'essaie de stocker mes données...      
   return View("Inquiry", myBill);
}

Ensuite, sur ma page Inquiry...

public ActionResult Summary(string Num, DateTime Date)
{  ...
   Bill myBill = new Bill(Num, Date, myConnections);      
   //... Les données sont récupérées ici :(      
   return View("Summary", myBill);
}

Il y a suffisamment de données pour éviter de les stocker dans une session. Est-il possible de les sauvegarder dans le dossier Model et simplement utiliser un héritage sur la page aspx ?

Je suis un jeune bourgeon dans le monde de la programmation, pire, .NET MVC

Je devrais être capable de savoir où aller à partir de là. Des idées ?

2voto

Omar Points 16654

En supposant que j'ai bien compris votre question :

Vous pourriez mettre en cache l'élément. Attribuez une clé unique à l'objet de cache (Cache["uniquekey"]), puis passez cette clé unique à votre autre action.

Vous pouvez faire en sorte que votre action recherche cet objet dans le cache et l'envoie en tant que modèle.

Voici un article sur le caching des 4 Guys from Rolla, tandis que voici une vidéo officielle d'apprentissage ASP.NET sur le caching.

Remarque : Assurez-vous de spécifier une date d'expiration sur l'objet mis en cache.

0voto

Adam Tolley Points 465

Si ce sont deux actions sur le même contrôleur, et que vous renvoyez essentiellement le modèle au contrôleur lors de l'envoi (ce qui n'est qu'une supposition de ce que vous pourriez faire), alors vous pouvez utiliser la collection des valeurs du formulaire et la méthode updateModel, ou même utiliser une action fortement typée comme ceci (à peu près):

public ActionResult Inquiry(string Num, DateTime Date)
{  ...
   Bill myBill = new Bill(Num, Date, myConnections);      
   //C'est là que j'essaie de stocker mes données...      
   return View("Inquiry", myBill);
}

public ActionResult Summary(Bill bill)
{     
   //... faire des trucs
   return View("Summary", bill);
}

De cette manière, vous obtenez ces informations à partir d'une source naturelle ; la facture entrante. Vous pouvez les traiter, les enregistrer, les réorganiser, les jeter dans un autre modèle mais ensuite les renvoyer à la vue sans forcément les recharger.

Je suis aussi nouveau dans aspnet mvc, et la plupart du temps je lutte avec les entrées et sorties de données, il me manque quelque chose au niveau de l'architecture.

Le chapitre de nerddinner de Scott Gu est particulièrement utile pour comprendre certaines choses.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X