6 Stimmen

Asp.Net Mvc JQuery ajax Eingabeparameter sind null

Ich versuche, einige Daten mit jQuery Ajax zu posten, aber die Parameter in meiner Ajax-Methode sind null.

Dies ist ein einfacher Test, um Daten zu senden:

 var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' };
        jQuery.ajax({
            type: "POST",
            url: "Create",
            contentType: 'application/json; charset=utf-8',
            data: $.toJSON(dataPost),
            dataType: "json",
            success: function(result) {
                alert("Daten zurückgegeben: ");
            }
        });

Und meine Ajax-Methode sieht so aus:

[HttpPost]
public ActionResult Create(string title, string message, string tagIds)
{... }

Es gibt etwas grundlegend falsch mit den Daten, die ich sende, aber ich kann nicht herausfinden, was. Die ganze Zeit sind der Titel, die Nachricht und die tagIds null, also stimmt etwas mit der Codierung nicht, ich weiß einfach nicht was.

Optimalerweise sollte der Parameter tagIds ein Array oder eine Liste von GUIDs sein.

Hinweis: Das jQuery.toJSON ist dieses Plugin

15voto

Darin Dimitrov Punkte 990883

Die Create Controller-Aktion erwartet keine Parameter in JSON-Serialisierung, sodass Sie diese nicht verwenden müssen. Versuchen Sie, sie stattdessen direkt zu übergeben:

var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' };
jQuery.ajax({
    type: "POST",
    url: "Create",
    data: dataPost,
    dataType: "json",
    success: function(result) {
        alert("Daten zurückgegeben: ");
    }
});

3 Stimmen

Danke anscheinend hat der Inhaltstyp mehr Ärger als Gutes gemacht.

1 Stimmen

Dasselbe Problem, ich konnte nicht herausfinden, warum das Modell-Binding für einen einfachen String nicht funktionierte... Ich hatte den contentType auf json gesetzt. Nachdem ich es entfernt hatte, hat es wunderbar funktioniert.

0voto

Wen Punkte 26

Wir benötigen nicht den contentType: 'application/json; charset=utf-8', und $.toJSON

Hier ist der Code, der mich glücklich macht!

 $(function () {
        $("#btnSumbit").click(function () {
            $('#results').hide();
            $('#loadingmessage').show();
            var a = $("#query").val();

            $.ajax({
                type: "POST",
                url: "/Search/Index",
                data: ({ query: a }),
                datatype: "json",
                success: function (data) {
                    $('#results').empty();
                    for (var i = 0; i < data.length; i++) {
                        var div = "" + data[i].Name + "";
                        $("#results").append(div);

                    }
                    $('#loadingmessage').hide();
                    $('#results').show();
                },
                failure: function (errMsg) {
                    $('#loadingmessage').hide();
                    alert(errMsg);
                }
            });
        });
    });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X