Rufen Sie den benutzerdefinierten Bestätigungsdialog in Ajax.Beginform in MVC3 auf

8

Ich möchte in der Lage sein, ein benutzerdefiniertes jquery-Dialogfeld zu verwenden oder zumindest den Text der Schaltflächen von OK / Cancel auf etwas anderes zu ändern, wenn die AjaxOptions.Confirm-Eigenschaft in der Ajax.Beginform-Funktion verwendet wird. So:

%Vor%

Gibt es eine Möglichkeit, dies mit Ajax.Beginform über die AjaxOptions.Confirm-Eigenschaft zu erreichen?

    
gardarvalur 09.05.2013, 21:25
quelle

3 Antworten

3

Nein, das erreichen Sie nicht mit der Confirm-Eigenschaft von AjaxOptions. Dies verwendet einfach die JavaScript-Methode window.confirm , die keine Anpassungen der Benutzeroberfläche zulässt und ein Browser ist abhängig. Sie müssen diese Funktionalität selbst implementieren. Zum Beispiel möchten Sie möglicherweise die jQuery UI dialog plugin auschecken.

    
Darin Dimitrov 09.05.2013, 21:27
quelle
3

Ich bin darauf gestoßen, um AjaxOptions anzupassen. Bestätige Text mit einem Wert, der noch nicht erstellt wurde, wenn Ajax.Beginform gerendert wird.
Zum Beispiel:
Confirm="Are you sure you want to create Customer Id" + someValue + "?"

Schließlich wurde eine Lösung gefunden: Der Ansatz betrifft eine Änderung im Verhalten der Schaltfläche "Senden" mit JQuery, um den Wert zu ziehen, meinen eigenen Bestätigungsdialog auszuführen und das Ajax-Formular zu senden, wenn der Benutzer dies bestätigt.

Die Schritte:
1- Entfernen Sie Bestätigen aus AjaxOptions und vermeiden set buttons type="submit", könnte type="button"

sein %Vor%

2- Fügen Sie Folgendes zu einer js-Datei hinzu, auf die in der Seite oder im Layout verwiesen wurde.

%Vor%

'CustomerId' ist die ID einer versteckten Eingabe auf der Seite.
Ich hoffe, das hilft.

    
Ivan Santiago 30.08.2013 17:54
quelle
2

Ich suchte nach der Lösung und kam hierher. Obwohl Darin kategorisch die Möglichkeit einer Lösung bestreitet, hat mich seine Antwort tatsächlich auf eine Lösung gebracht.

Wenn Sie die Datei jquery.unobtrusive-ajax.js in Ihrem Bundle bereitstellen können, können Sie mit der Lösung fortfahren

Hinweis: In diesem Beispiel wird das Bootstrap-Dialogfeld

Ersetzen Sie die Funktion asyncRequest(element, options) in jquery.unobtrusive-ajax.js durch diese

%Vor%     
Anup Sharma 08.11.2016 08:32
quelle