Проблема с AJAX Post Method для использования в коде позади - PullRequest
0 голосов
/ 17 апреля 2020

Я ищу помощь в отправке JSON данных с помощью метода Ajax на URL, который я могу затем использовать, чтобы использовать значения. Я думаю, что у меня есть большинство компонентов, но я не уверен, что делать, когда я доберусь до своего веб-метода. Есть ли какие-либо ошибки, приведшие к получению моего веб-метода? Кроме того, я просмотрел около 20 похожих примеров по переполнению стека, и хотя некоторые из них могли быть решением моей проблемы, я либо не понял, либо пропустил.

Мой скрипт

function UpdatePeople() {
        var PeopleToUpdate = {
            "people": [
                { "name": "John", "age": "17" },
                { "name": "Harry", "age": "19" },
                { "name": "Steve", "age": "23" }
            ]
        };

        jQuery.ajax({
            url: '_ajax_updatepeople.aspx/UpdateOnDemand',
            type: "POST",
            data: PeopleToUpdate,
            dataType: "json"
        });
    }

Моя страница (C#).

[WebMethod]
public string UpdateOnDemand(List<string> PeopleToUpdate)
{
    // what do i do now once i am here? How can i access the data I have sent through?
}

1 Ответ

1 голос
/ 17 апреля 2020

Проблема здесь в том, что вы пытаетесь отправить список people на сервер, однако ваш метод UpdateOnDemand принимает список string. Я предполагаю, что вы хотите отправить список людей на сервер, и у вас есть класс people на сервере. Кроме того, вам необходимо использовать JSON.stringify для отправки списка данных людей:

Итак, на стороне клиента:

function UpdatePeople() {
    var PeopleToUpdate = [
            { "name": "John", "age": "17" },
            { "name": "Harry", "age": "19" },
            { "name": "Steve", "age": "23" }
        ];

    jQuery.ajax({
        url: '_ajax_updatepeople.aspx/UpdateOnDemand',
        type: "POST",
        data: JSON.stringify({'PeopleToUpdate' : PeopleToUpdate }),
        dataType: "json"
    });
}

На стороне сервера:

[WebMethod]
public string UpdateOnDemand(List<People> PeopleToUpdate)
{
    //..
}

И People класс на стороне сервера должен быть таким:

public class People
{
    public string name { get; set; }

    public string age { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...