2017-02-04 2 views
0

i haben Controller-Methode, die Bilddatei laden, nicht mit jQuery AJAX, von <input> Typ "Datei", kehrt das Verfahren:Display-Meldung in einem toastr nach Controller-Methode beenden

Return Redirect(Request.UrlReferrer.PathAndQuery) 

weil ich es will Bleiben Sie in der gleichen Ansicht nach dem Senden klicken.

Ich möchte nach dem Erfolg Bild hochladen, toastr.success.

Wie kann ich es tun?

+1

Wenn Sie auf der gleichen Seite bleiben wollen, dann Ajax verwenden. Alternativ, wenn Sie auf die gleiche Seite oder eine andere Seite umleiten), müssen Sie die Nachricht an sie weiterleiten. –

+0

Wie übermittle ich die Nachricht? –

+1

Zahlreiche Möglichkeiten - z.B. von der POST-Methode zur GET-Methode über 'TempData' und dann zur Ansicht mit 'ViewData', wenn Sie umgeleitet werden. Das ist viel zu weit. –

Antwort

0

Setzen Sie in Ihrer http-Post-Aktionsmethode nach erfolgreichem Upload einen Eintrag in das TempData-Wörterbuch und lesen Sie ihn in der nächsten Ansicht, die von der Redirect-Methode geladen wird, und zeigen die Toastr-Nachricht an.

TempData["Msg"] = "Uploaded successfully"; 
return Redirect(Request.UrlReferrer.PathAndQuery); 

Ihrer Ansicht

<script> 
    $(function(){ 
    var msg = "@(TempData["Msg"] as string)"; 
    if (msg !== "") { 
     toastr.success(msg); 
    } 
    }); 
</script> 
Verwandte Themen