2016-05-11 21 views
0

Ich bin mit einem Problem konfrontiert.Javascript Daten an den Controller auf Ajax Formular senden senden

Ich habe einige Dropdowns und Eingabesteuerelemente in einem Webformular in einem div platziert. Wenn ich auf Hinzufügen klicke, erzeugt das obige div mit JavaScript und alle Steuerelemente werden dynamisch von Javascript mit verschiedenen IDs erzeugt und unten angehängt.

$("#xra-products-wrap").append(strVar).html(); 

Wenn ich speichern Schaltfläche auf der Seite auf klicken ist es ein Ajax

@(Ajax.Beginform(){} 

In dieser Situation vorlegen, wie kann ich die Werte von Kontrollen und senden es an die Steuerung erhalten. Wenn ich auf Hinzufügen klicke, kann ich den Wert in Javascript speichern. Aber beim Klicken auf Speichern, wie kann ich die Daten an den Controller übergeben. Ich kann die Daten in Javascript speichern. Aber während ich das Formular abschicke, kann ich es nicht senden.

Bitte helfen Sie uns dabei.

Antwort

0

Ich nehme an, dass Sie Informationen aus Formularelementen abrufen möchten.

var dropdown = $("select[name='dropdown']").val(); 
var text = $("input[name='text']").val(); 

Sie sollten Wert dieser Felder auf diese Weise erhalten können. Mit diesen Werten sollten Sie in der Lage sein, einen Ajax-Aufruf an den Server zu machen.

1

Sie müssen @Ajax.BeginForm mit einem AjaxOptions Argument aufrufen, um das Verhalten zu steuern. Die Eigenschaft Url dieses Arguments gibt an, wohin die AJAX-Anforderung gesendet wird (in diesem Fall nehme ich an, dass eine URL an eine Controller-Aktionsmethode weitergeleitet wird). Die Eigenschaft UpdateTargetId des Arguments gibt an, welches clientseitige DOM-Element den gerenderten HTML-Code vom Rückgabewert der Aktionsmethode erhält (z. B. PartialViewResult).

Sie können auch die OnSuccess- und OnFailure-Eigenschaften im AjaxOptions-Argument festlegen, um den JavaScript-Code anzugeben, der bei Erfolg bzw. Fehler ausgeführt werden muss.

@Ajax.BeginForm generiert Codeform Werte zu übermitteln (auch solche, die aus Elementen dynamisch hinzugefügt) in den angegebenen URL, verarbeiten die Antwort und machen die Datennutzlast (die HTML wäre, wenn eine PartialViewResult zurückgegeben wird) innerhalb des Elements DOM spezifiziert durch UpdateTargetId. Daher müssen Sie keine Formularwerte in JavaScript speichern und müssen sie nicht manuell an die Controller-Aktion senden.

Angenommen, Sie müssen das Formular aktualisieren, nachdem die Werte übermittelt wurden. Erstellen Sie mit den Formularelementen eine Teilansicht und rendern Sie mit der RenderPartial die Teilansicht innerhalb eines <div> Elements auf der Hauptseite. Setzen Sie dann den Wert AjaxOptions.Url auf die URL der Controller-Aktion, die das Formular verarbeitet, und auf den Wert AjaxOptions.UpdateTargetId auf die ID des Elements <div>.

Weitere Informationen finden Sie unter AjaxExtensions.BeginForm und AjaxOptions auf MSDN.

Verwandte Themen