Менеджер сценариев ASP.NET получает ошибку 500 при отправке на сервер с помощью AJAX

Вчера я задал вопрос, который был закрыт по причине дублирования, однако я до сих пор не получил ответа, как решить мою проблему, и мне нужна помощь.

Я использую ASP.NET с менеджером скриптов.

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" runat="server" />

Я получаю ошибку 500 при попытке отправить данные на сервер.

Неверный код с ошибкой 500:

CS:

[WebMethod]
public static void SetCurrentBaseVersion(string id)
{
    // need to get here
}

JS:

function postNewBaseLine() {
    var id = "300";

    $.ajax({
        type: "POST",
        url: "ManagerBaseKit.aspx/SetCurrentBaseVersion",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: {'id' :id},
        success: function (data) {
            alert('success!');
        },
        statusCode: {
            500: function () {
                alert('got error 500');
            }
        }
    });
}

Что я нашел до сих пор, если я удалю идентификатор строки в веб-методе, он работает нормально, и я могу получить доступ к SetCurrentBaseVersion (не получая ошибку 500)

Рабочий код:

CS

[WebMethod]
public static void SetCurrentBaseVersion() //removed the string id
{
    // need to get here
}

JS

function postNewBaseLine(id) {
    var id = "300";

    $.ajax({
        type: "POST",
        url: "ManagerBaseKit.aspx/SetCurrentBaseVersion",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        //data: {'id' :id},   removed the data
        success: function (data) {
            alert('success!');
        },
        statusCode: {
            500: function () {
                alert('got error 500');
            }
        }
    });
}

person user829174    schedule 10.10.2012    source источник


Ответы (1)


Вы должны передать данные в виде строки json, вам нужно поместить значение данных в двойные кавычки, чтобы сделать его строкой. Формат json имеет пару ключ-значение в кавычках. Вам необходимо понимать формат данных Json.

  data: "{'id': '" + id+ "'}",

Это также работало без использования кавычек вокруг ключа и значения, но документ json, который я назвал состояниями для помещения кавычек вокруг ключ и значение.

  data: "{id: " + id + "}",

Для метода с двумя параметрами

Код

[WebMethod()]
public static string CallMethodFromClient(string id, int amount)
{ 

HTML

    data: "{ id : " + id + ", amount : " + amount + " }"
person Adil    schedule 10.10.2012