MVC3: Aufruf Steuerung Von AJAX-Button Klicken
In ASP .Net MVC3, wie kann ich einen Benutzer eingegebenen Eingabe-Wert und Griff das klicken auf eine Schaltfläche zum Aufruf eines Controllers, der Rückkehr ein neues Modell Entität, die updates anderer form-input-Werten mit der Eigenschaftswerte ohne Neuladen der gesamten Seite?
Schritte:
- Geben Sie die Id der Entität.
- Klicken Sie Auf "Suchen"
- Eingegebene Wert wird gesendet an controller, welche Abfragen von Entity Framework aus, um eine Entität - mit der mitgelieferten Id.
- Gefunden entity wird zurück zum aufrufenden Seite.
- Anderen Formularfelder aktualisieren Ihre Werte mit übereinstimmenden Werte.
Ich würde diese in Sekunden in Web-Formularen, aber als neu in MVC3... naja... Spaß 🙂 ich dachte, dass es wahrscheinlich etwas mit Ajax.ActionLink? Beispiele ich sehe, befassen sich mit der übertragung und Speicherung von Daten.
Richard
InformationsquelleAutor Richard | 2012-05-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, wie Sie das tun könnte, Ajax post mit MVC3. In Ihrem Fall, aktualisieren Sie das Formular auf der
OnSuccess
callback-Funktion auf der Basis der Antwort vom server.Schritt 1
Stellen Sie sicher, Sie haben auf die jQuery-Ajax-Bibliothek
Schritt 2
In der Ansicht verwenden Sie die Ajax.BeginForm helper-Methode zum generieren von Ajax bewusst form. Auch eine
OnSuccess
javascript-callback-FunktionSchritt 3
In der action-Methode, tun Sie Ihre business-Verarbeitung und liefert ein JSON-Ergebnis. In diesem Beispiel habe ich einfach zurück, ein Modell, das fügen Sie die Abfrage, um die Namen.
Ich habe nicht ganz verstanden, Ihr Kommentar. Wenn Sie sich Fragen, über die Rückgabe-Datentyp - JsonResult leitet sich von ActionResult, so können Sie entweder das Basis-Klasse Typ-oder Beton-Art
InformationsquelleAutor Rajeesh
Könnten Sie einfach die jquery-ajax-Methode aufrufen, um die Aktion, und die Aktion " zurück, was auch immer Werte u müssen. Sie können dann die Werte, die Aktualisierung der anderen Felder via javascript.
Dies ist eine sehr Allgemeine Lösung, da Sie, sofern kein code es ist schwer, genau zu sein. U legen Sie den Datentyp, je nachdem, was Sie senden zurück. Eine beliebte Wahl ist json.
Siehe hier: http://api.jquery.com/jQuery.ajax/
InformationsquelleAutor CDubbz31
Wenn Sie möchten, dass eine tatsächliche Ajax
button
element, sondern als ein styling-hack oder JQuery, es ist auch möglich, aber ein wenig beteiligt. Es ist eine Schande, dass MS noch nicht gewählt, fügen Sie ein ActionButton, um sowohl die Html-und Ajax-Helfer, wie die Unterschiede sind tatsächlich sehr gering, wenn Sie entfernen die Vervielfältigung von privaten support-Methoden (man bräuchte nur denActionButton
undGenerateButton
Methoden unten).Das Endergebnis ist, können Sie echte Tasten, trigger wie ajax Aktion links:
z.B.
1. Erstellen Sie eine AjaxHelper Erweiterung
Den code unten, ist basiert auf ein dekompilieren der AjaxExtensions Klasse, wie viele von den benötigten Hilfsmethoden sind nicht ausgesetzt auf HtmlHelper.
2. Ändern jquery.unobtrusive-ajax.js
Nur eine kleine änderung erforderlich ist, um die JQuery von jquery.unobtrusive-ajax.js akzeptieren die neue button-Objekt, da es in unmittelbarer Nähe, um mit zu beginnen. Zuerst der Selektor muss akzeptieren, dass ajax-buttons sowie links und dann der href muss über ein Attribut, also als eine nicht-Verbindung kann es (nicht unbedingt browser-kompatibel, arbeitet aber für jetzt).
*Hinweis: dies ist die neueste version von alles, was als zum Zeitpunkt der Beantwortung (MVC 5)
InformationsquelleAutor Gone Coding