2010-08-24 2 views
2

Nous avons une méthode d'action quelque peu complexe et de longue durée pour laquelle nous aimerions afficher une barre de progression. La grille javascript que nous utilisons nécessite que l'enregistrement et le chargement des données soient effectués en une seule requête (enregistrer d'abord, puis charger), et nous exige également de sauvegarder les données en session.AsyncController et les données de session d'ASP.NET MVC

Notre idée initiale était d'utiliser simplement un AsyncController, mais la méthode a évidemment échoué car elle accède (et enregistre) à l'état de la session. Puisque nous ne pouvons pas diviser l'action en raison de la grille javascript, y a-t-il une autre option?

+0

J'ai peut-être mal lu la première fois. La méthode doit-elle mettre à jour la session à la fin? – dove

+0

@dove - correct. La grille doit connaître le nombre total de colonnes/lignes (calculé sur la charge), qui est stocké dans la session afin que nous n'ayons pas besoin de recharger la grille entière chaque fois que nous modifions la largeur d'une colonne. – Andrew

Répondre

0

Vous pouvez utiliser un bus de service et envoyer un message à celui-ci. Certes, cela pourrait être exagéré pour ce que vous faites, mais pourrait valoir le détour.

Recherche SO pour rhinobus, masstransit ou nservicebus. Cela vous permettrait d'envoyer un message de façon asynchrone, mais vous devez configurer l'application qui s'abonne à ce message.