2016-07-05 5 views
1

Ich benutze AJAXForm mit MVC.MVC Controller Zurück Inhalt vor Update Div Inhalt

Wie kann ich div Inhalt aktualisieren wie return RedirectToAction("action","controller")

aber vor Aufruf wie Rückkehr Content("Successfully update") Nachricht mit Javascript oder ohne Javascript?

Wie Controller:

if(Success) 
    { 
     return Content("Successfully updated"); 
    } 
    else 
    { 
     return Content("Error"); 
    } 

Razor:

<div id="result"> 

<form action="/controller/action" data-ajax-update="#result" 
    data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" method="post "> 

<!-- Inputs was here --> 
    </form> 

    <div id="Content "> 

<!-- DataList (partial content) was here -->  
    </div> 
+1

Bitte beachten Sie, dass das Model-View-Controller-Tag für Fragen zum Muster. Es gibt ein bestimmtes Tag für die ASP.NET-MVC-Implementierung. –

Antwort

1

können Sie verwenden Ajaxoptions:

@using (Ajax.BeginForm("action", "controller", new AjaxOptions 
         { UpdateTargetId = "Content", 
          OnFailure = "OnFailure", 
          OnSuccess = "OnSuccess"})) 
{ 
... 
} 

und dann

<script type="text/javascript"> 

    function OnSuccess(data) { 
     $("#Content").html("Successfully updated"); 
    } 
    function OnFailure(request, error) { 
     alert("Error!"); 
    } 

</script> 
+0

nein. Wenn dies nicht erfolgreich ist, wird der Inhalt mit einer Fehlermeldung aktualisiert. – caras

+0

@caras Könnten Sie bitte geben Sie mir mehr Details, denn jetzt ist es ein wenig unklar, was Sie wollen – Marusyk

+1

Ich denke, die Antwort von @MegaTron ist bereits genau auf. Verwenden Sie die OnSuccess und OnFailure Funktionen, um die Daten zu manipulieren. – denchu

0

Die Steuerung überprüft dann sollte haben:

if(Success) 
    { 
     return Content("Successfully updated"); 
    } 
    else 
    { 
     return Json(new { success = false, message = "Error!"}); 
    } 

Dann in der OnSuccess JS Funktion:

function OnSuccess(data) { 
     if (data.success === false){ 
      alert(data.message); 
      $("#Content").html(data.message); 
     } 
     else 
      $("#Content").html(data); 

}