2008-11-30 8 views
8

J'essaie actuellement de créer un contrôle de téléchargement avec une barre de progression dans MVC en utilisant jquery. Je continue à courir dans un problème cependant en ce que mvc ne fonctionne pas dans les discussions parallèles? Quand je télécharge un fichier et montre la progression pendant le téléchargement de JS effectué par plusieurs rappels au serveur, j'essaye d'obtenir des informations sur l'état actuel de téléchargement mais la réponse du serveur revient seulement quand le dossier a été téléchargé.ASP.NET MVC Session Etat

Connaissez-vous un moyen d'obtenir des requêtes d'état de session dans MVC en permanence ou lorsque la demande est effectuée?

J'apprécierais vraiment un peu d'aide et je suis sûr que d'autres le feraient si quelqu'un connaît la réponse !!

Répondre

4

Vous perdrez votre état d'affichage si vous appelez une action qui renvoie une vue. Vous pouvez transmettre des données entre les actions en utilisant TempData si vous le souhaitez, mais cela ne résoudra probablement pas votre problème. Il me semble que ce que vous voulez ici est une action qui va retourner un élément JSON que vous pouvez appeler avec du javascript asynchrone.

Pour votre action, vous auriez:

public ActionResult GetSuggestions(string searchText) 
{ 
    return Json(new { SearchText = searchText + "completestring"}); 
} 

Et puis sur votre formulaire vous avez javascript asynchrone en utilisant jQuery:

function startAutoComplete() { 
    var searchText = $("#inputText").val(); 
    $.getJSON("/Search/GetSuggestions?searchText=" + searchText, null, autoCompleteResponse); 
} 

function autoCompleteResponse(data) { 
    if (data.SearchText) { 
     $("#inputText").val(data.SearchText); 
     $("#inputText").select(); 
    } 
} 

Cela vous permettra d'obtenir des informations sur votre serveur sans en affichant le formulaire et en gardant le point de vue du client en contact.

There is a full write up of the example here qui pourrait aider.

+0

'renvoyer Json (nouveau {SearchText = searchText +" completestring "}," text/json ", JsonRequestBehavior.AllowGet);' – Bellash