ASP.NET MVC4 AJAX.BeginForm AjaxOptions OnSuccess nicht aufgerufen

8

Ich versuche, Jquery Model Dialog in MVC4 mit Razor-Dialogfeld zu verwenden, das fein zeigt, aber AjaxOptions.OnSuccess Javascript-Funktion ruft nicht auf, nachdem ich auf die Update-Schaltfläche geklickt habe, aber es wird zu http: // & lt; & gt;: 3738 / Autos / Edit / 1? Länge = 4 Ich weiß nicht, warum es passiert ist.

Hier ist mein Code

CarController.cs

%Vor%

Index.cshtml

%Vor%

Edit.cshtml

%Vor%     
ravikumar 09.10.2013, 07:22
quelle

7 Antworten

16

Die folgende Jquery-Datei ist erforderlich

jquery.unobtrusive-ajax.js

    
maxspan 28.03.2014 01:53
quelle
11

Das Problem, das ich hatte, war, dass ich die Erfolgsfunktion in $ (document) .ready () deklarierte. Ich habe es nach draußen verlegt und es hat funktioniert.

d. h .:

%Vor%     
Sam 24.03.2015 23:46
quelle
1

Sie müssen einen weiteren Parameter in Ihrem BeginForm-Aufruf hinzufügen:

%Vor%

null ist für RouteValueDictionary. Hier sind Alle Überladungen für Ajax.BeginForm-Methode.

    
Alex 09.10.2013 07:42
quelle
1

Ich hatte das gleiche Problem. Anfangs hatte ich mein Skript im Kopfbereich der Teilansicht ... Das verursachte meine Probleme.

Ich habe es in den Header in der Ansicht verschoben, der meine Teilansicht hostet, und alles hat gut funktioniert. Meine Ansicht ist eine Bootstrap-Seite, die in einer mvc-Anwendung mit dem Layout "Layout = Nothing" gehostet wird. Wenn Ihre Controller-Aktion eine Ansicht lädt, liegt definitiv ein Problem mit dem Standort jquery.unobtrusive-ajax.js vor ...

    
RestoreProSoftware 25.02.2014 15:22
quelle
1

Versuchen Sie:

@using (Ajax.BeginForm ("Bearbeiten", neu {controller="Autos"} , neue AjaxOptions

)     
Cadete 27.06.2014 15:11
quelle
0

Sie können die Post-Methode direkt innerhalb des Script-Tags verwenden, um die Controller-Methode wie folgt aufzurufen:

%Vor%

und dann in der Jquery

%Vor%     
Anand Thakkar 09.10.2013 07:35
quelle
0

Es gibt einen Syntaxfehler in @ Alex's Code, dieser sollte funktionieren:

%Vor%

Insbesondere sollten Sie diese Überladung von Ajax.BeginForm() .

    
rexcfnghk 09.10.2013 08:46
quelle