Ich habe einen synchronen Aufruf, die ich umwandeln müssen, um Asynchron, Im mit der Asynchron/erwarten Schlüsselwörter, aber diese nur zurückkehrt, sobald die Aufgabe hat, vollenden, was ich tun muss, ist, die Ergebnisse zurück auf die Benutzeroberfläche eins nach dem anderen.Async Aktionen in ASP.NET MVC 4
Das Szenario ist Ich habe eine Aufgabenliste für den Benutzer angezeigt, sobald sie authentifiziert haben, aber ich möchte die Aufgabe nacheinander geladen werden, sobald sie aus der Datenbank abgerufen wurden, hier ist meine actionResult, die die zusammenstellt Suchkriterien vorab filtern, um die Aufgaben:
public async Task<ActionResult> Index(string searchTerm = null, int page = 1)
{
Shared.InitialiseCriteria(SearchCriteria);
SearchCriteria.DepartmentID = DepartmentID;
SearchCriteria.PageSize = 15;
SearchCriteria.FreeText = searchTerm;
var model = await DoStuff(SearchCriteria);
if (Request.IsAjaxRequest())
{
return PartialView("_ConversationList", model);
}
return View(model);
}
Und hier ist die await Aufgabe dieser GetConversation nennt, die im wesentlichen die Aufgaben erhält, wenn die erste Aufgabe gefunden ich muss es auf den Index Ansicht geladen werden:
private async Task<Result> DoStuff(CSearchCriteria SearchCriteria)
{
return GetConversations(SearchCriteria);
}
Können Sie erklären weiter, was genau Sie passieren erwarten, und was passiert eigentlich? – sinelaw
I würde die Aufgaben in der DB gefunden dergleichen in die Teilansicht einen nach dem anderen geladen werden, so wird der Benutzer nicht an einer Lade Bildschirm mit, im Moment ist es etwa 10 Sekunden für nur vier Aufgaben nimmt zu laden. Ich kann bei Bedarf weitere Informationen liefern ... – user2711252