2017-11-24 3 views
0

Wie kann ich mit Fehlern umgehen, ohne MVC Seite umleiten oder aktualisieren?Handle-Fehler ohne Umleitung und Seitenaktualisierung in MVC

In der Tat hat meine View.cshtml mehrere Tags und ich möchte eine bestimmte Post und behandeln Fehler (falls vorhanden) ohne Umleitung und Aktualisierung der Seite. Ich möchte den Fehler wirklich warnen.

Das folgende ist mein JavaScript-Code-Snippet:

fn_GetData: function() { 
    $('#frm4').attr('action', 'my url goes here').attr('method', 'post'); 
    $('#div4').html('<input type="hidden" name="p" value="' + 'some value goes here' + '"/> '); 
    $('#frm4').submit(); 
} 

Hier Code mein Controller-Aktion:

public ActionResult GetData(string p) 
{ 
    var error = false; 
    // Some logic goes here... 
    if (error) 
    { 
     TempData["Result"] = "My error message goes here"; 
     // I don't know how to alert the above error message without having to redirect or refresh the page. 
    } 
} 

Antwort

0

Der Controller methodds verschiedene Arten von Inhalten zurückkehren können.

Zum Beispiel können Sie

return Json() 

verwenden und ein Objekt der Methode geben. Dies verwandelt Ihr Objekt in Json, das Sie dann in Ihrem JS-Code behandeln können. Noch einfacher, Sie können nur eine Zeichenfolge zurückgeben und das in Ihrem JS behandeln, wenn Sie wirklich nur die Fehlermeldung benötigen.

Die Seite sollte nicht neu geladen werden, wenn Sie eine dieser Methoden für den Rückgabewert verwenden.

0

Sie können das nicht mit einem "Senden" eines Formulars erreichen. Durch das Senden eines Formulars wird die Seite vom Browser neu geladen. Sie suchen nach einem AJAX-Aufruf an einen Webdienst, der ein Validierungsergebnis zurückgibt.

Sehen Sie sich die jQuery ajax-Methode an, wenn Sie jQuery auf Ihrer Clientseite verwenden. Sie können auf diese Weise Ihre Controller-Aktion aufrufen und das Rendering auf Ihrer Seite in Javascript ausführen.

Verwandte Themen