Входные параметры Asp.Net Mvc JQuery ajax равны нулю - PullRequest
6 голосов
/ 01 апреля 2010

Я пытаюсь опубликовать некоторые данные с помощью jQuery Ajax, но параметры в моем методе Ajax равны нулю.

Это простой тест для отправки данных:

 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("Data Returned: ");
            }
        });

И мой метод Ajax выглядит так:

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

Что-то не так с отправляемыми данными, но я не могу понять, что именно. Все время заголовок, сообщение и tagIds равны нулю, поэтому с кодировкой что-то не так, я просто не знаю, что.

Оптимальным параметром tagIds должен быть массив или список направляющих.

Примечание: jQuery.toJSON - это плагин

Ответы [ 2 ]

15 голосов
/ 01 апреля 2010

Действие контроллера Create не предполагает, что параметры будут сериализованы в JSON, поэтому вам не нужно это делать.Попробуйте передать их напрямую:

var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' };
jQuery.ajax({
    type: "POST",
    url: "Create",
    data: dataPost,
    dataType: "json",
    success: function(result) {
        alert("Data Returned: ");
    }
});
0 голосов
/ 08 мая 2015

Нам не нужны contentType: 'application/json; charset=utf-8', и $.toJSON

Вот этот код меня радует!

 $(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 = "<div>" + data[i].Name + "</div>";
                        $("#results").append(div);

                    }
                    $('#loadingmessage').hide();
                    $('#results').show();
                },
                failure: function (errMsg) {
                    $('#loadingmessage').hide();
                    alert(errMsg);
                }
            });
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...