Ich möchte den Fortschrittsbalken anzeigen, wenn der Benutzer das Formular abschickt, da dieser Vorgang einige Zeit in Anspruch nehmen kann, etwa 8 bis 10 Sekunden, also möchte ich den Fortschrittsbalken anzeigen habe eine Vorstellung davon, wie viel Zeit es dauern wird. Dieser Prozess wird beim einfachen Aufruf einer Controller-Aktion wie normales Postback ohne Ajax ausgeführt. Also, wie kann ich diese Aufgabe erreichen i asp.net MVC bin mit 2Fortschrittsbalken beim Aufruf des Controllers in Asp.Net MVC 2
1
A
Antwort
2
Fraz,
Während ich merke, sagen Sie NEIN Ajax BETEILIGT, dachte ich, das für Informationen Zwecke in Futter würde.
Solange Sie sich nicht um den "pase wait" Indikator kümmern, der den genauen Fortschritt anzeigt, gibt es einen einfachen Weg dies mit jquery zu tun und meine Antwort hängt davon ab.
Erstellen Sie im Grunde eine "Warte" -Ansicht, die eine einfache Nachricht mit einem darin eingebetteten animierten GIF enthält. abfeuern dann nur Ihren Einsatzes (oder die Aktion mit langer Laufzeit) über die folgenden Grundzug:
$(document).ready(function() {
$('#btnSave').click(function() {
$.ajax({
type: "POST",
url: '<%=Url.Content("~/Booking/Save") %>',
data: { data: prepareData() }, // your data properties to be saved
beforeSend: beforeQuery(),
success: function(data) {
saveDataResponse(data);
},
error: function(xhr) { alert(xhr.statusText); }
});
});
});
// here we show the 'wait' view prior to processing starting
function beforeQuery() {
var url = '<%= Url.Action("Wait", "Booking") %>';
$("#mainDiv").load(url);
}
// when the long running process has completed (or error'd)
// either populate mainDiv with the details view of the booking
// or show the error appropriately
function saveDataResponse(data) {
if (data.length != 0) {
if (data.indexOf("ERROR:") >= 0) {
$("#mainDiv").html(data).css('backgroundColor','#eeaa00');
}
else {
$("#mainDiv").html(data);
}
}
}
offensichtlich, gäbe es für Fehler conditons usw. ein wenig mehr beteiligt sein, aber das ist die grundlegende ‚Vorlage‘.
hoffe das hilft
Verwandte Themen
- 1. ASP.NET MVC 2: Html.ActionLink eine andere Funktion innerhalb des Controllers?
- 2. Wiederverwendbarkeit des Controllers in MVC
- 3. Globale Fehler (außerhalb des Controllers) in ASP.NET MVC Handhabung
- 4. Erstellen des ASP.NET MVC-Controllers in Visual Studio 2008
- 5. ASP.NET MVC - Nesting Routes/Controllers
- 6. Das TryValidate des ASP.Net MVC 2 Controllers validiert die List <> -Objekte im Modell nicht
- 7. ASP.NET MVC 2: Verschachtelte Ordnerstruktur
- 8. Fehler beim Erstellen des Controllers mit benutzerdefinierten Typ mit Entity Framework MVC ASP.NET
- 9. ASP.NET MVC Aufruf gespeicherte Prozeduren
- 10. Anforderungsvalidierung - ASP.NET MVC 2
- 11. MVC-Routen innerhalb des WebAPI-Controllers
- 12. Lebensdauer des Controllers im Frühling MVC
- 13. Stop $ Timeout beim Starten des neuen Controllers
- 14. ASP.NET MVC: Stack-Überlauf-Fehler beim Aufruf Html.RenderPartial()
- 15. RadioButtonFor in ASP.NET MVC 2
- 16. ASP.NET MVC 2: jQuery Aufruf Aktion, Update Ansicht?
- 17. Asp.net MVC 2 Caching
- 18. In asp.net MVC 2: wie HTTP-Daten im Konstruktor eines beliebigen Controllers zugreifen
- 19. Fehler beim Anpassen des Devise-Controllers: require_no_authentication
- 20. Route/Redirect zu Standardaktion durch Aufruf des Controllers in URL?
- 21. ASP.NET MVC 2: Teilweise aktualisieren?
- 22. Fortschrittsbalken beim Laden des Bildes mit Glide
- 23. Datei hochladen mit Fortschrittsbalken in Asp.Net Mvc/jQuery?
- 24. C# MVC Hochlade-Fortschrittsbalken
- 25. Angular 2 HTTP-Fortschrittsbalken
- 26. Verwendung von Controller.Content außerhalb des MVC Controllers C#
- 27. ASP.NET MVC 2: Erste Modelldaten
- 28. ASP.NET MVC 2 - ViewModel Prefix
- 29. ASP.NET MVC 2 Autorisierung Problem
- 30. Wie erhalten Sie den Namen der Aktion und des Controllers in der ASP.Net Core MVC App?
Und woher wissen Sie, dass es dauert 8 bis 10 Sekunden? Wenn Sie wissen, wie Sie diese Werte programmatisch erhalten, können Sie einen Fortschrittsbalken mit einfachem Ajax erstellen. Es ist unmöglich, einen Fortschrittsbalken zu erstellen, ohne zu wissen, wo du bist und wann du die Aufgabe beendest. – goenning