Ajax-вызов не затрагивает веб-метод в коде C # - PullRequest
0 голосов
/ 14 октября 2019

Доброе утро. В настоящее время у меня возникла проблема с переходом моего ajax-вызова из кода JQuery в C #. После этого он должен вернуть истинное значение в конце функции. Я попытался удалить тип и изменить веб-метод на заголовок HttpPost, что я не могу сделать. Вот пример кода.

Javascript

var jsonFormValues = JSON.stringify(formValues);
    $.ajax({
        type:POST,
        async: false,
        url: "RegistryOpt.aspx/SendOpt",
        data: { jsonFormValues: jsonFormValues },
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            onWebMethodSucceeded();
        }
    });

C #

[WebMethod(EnableSession = true)]
public static bool SendOpt(string jsonFormValues)
{
    Debug.Assert(!string.IsNullOrEmpty(jsonFormValues));

    var fv = Json.Decode<FormValues>(jsonFormValues);

    fv.attestationItems = RegistryOpt.FormatAttestation(fv.attestation);

    var eb = new EmailBuilder(fv);

    return true;
}

1 Ответ

0 голосов
/ 14 октября 2019

Я думаю, проблема в том, что вы форматируете в JSON только значение параметра. Вместо var jsonFormValues = JSON.stringify(formValues); вам необходимо использовать JSON.stringify и для самого параметра:

    $.ajax({
        type:POST,
        async: false,
        url: "RegistryOpt.aspx/SendOpt",
        data: JSON.stringify({ jsonFormValues: formValues }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            onWebMethodSucceeded();
        }
    });
...