Как передать значения javascript в aspx c # с помощью ajax - PullRequest
0 голосов
/ 05 февраля 2019

Я не могу найти способ передать значения из файла javascript (который я получил из html-файла из события onclick) в файл aspx.cs.

Я попытался использовать следующеекод.Кажется, что каждая статья показывает этот путь, но ошибка продолжает вызываться, также пытались использовать «type» вместо «method».

.js file:

//get 'name' variable here
        $.ajax({
                url: 'WebForm.aspx/Send',
                dataType: "json",
                method: 'post',
                contentType: "application/json; charset=utf-8",
                data: { name: name },
                success: msgsuccess,
                error: msgerror
            });

Файл WebForm.aspx.cs:

    [WebMethod]
    public static string Send(string name)
    {//breakpoint here
        //code
    }

Код никогда не достигает точки останова в файле aspx.cs, поэтому значение кода никогда не будет

Это мой первый пост в переполнении стека, извините, если что-то отформатировано неправильно.

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

[WebMethod] с синтаксический анализ JSON, поэтому данные запроса должны быть отправлены в виде строки:

$.ajax({
  url: 'WebForm.aspx/Send',
  dataType: "json",
  method: 'post',
  contentType: "application/json; charset=utf-8",
  data: JSON.stringify({ name: name }), // use JSON.stringify here
  success: msgsuccess,
  error: msgerror
});

Все остальное должно работать как положено.

0 голосов
/ 06 февраля 2019

Проблема решена:

Проверил консоль (с F12), как советовал @TylerRope, и получил ошибку 401 (Unauthorized).

С этим я прибегнул к это сообщение корректноответьте и исправьте ошибку.Если вы знаете какие-либо побочные эффекты, которые может вызвать это решение, будем благодарны, если вы поделитесь им.

Спасибо за вашу помощь!

0 голосов
/ 05 февраля 2019

Вам необходимо добавить элемент управления ScriptManager на страницу (или его MasterPage) и убедиться, что свойство ScriptManagerEnablePageMethods для *1005* равно true.

Например, когда страница или ее главная страница имеют элемент управления ScriptManager, например, такой:

<asp:ScriptManager runat="server">
        ...
</asp:ScriptManager>

, затем добавьте свойство EnablePageMethods и установите для него значение true:

<asp:ScriptManager runat="server" EnablePageMethods="true">
        ...
</asp:ScriptManager>

Обратите внимание, что вы не можете добавить элемент управления ScriptManager на страницу, когда его главная страница уже имеет такой элемент.


Кроме того, вы можете упростить вызов метода из JavaScript.Вы можете просто использовать:

PageMethods.Send(name, msgsuccess, msgerror);
...