Чтение данных POST с помощью C# не возвращает ожидаемых результатов

Я настраиваю простой метод POST для отправки информации в форму перед обработкой C# в коде программной части. Ожидаемый результат - это текстовая строка с некоторыми простыми значениями:

function postTasks() {
  var postdata = $("#taskReturnDiv").text();
  try {
    $.ajax({
        type: "POST",
        url: "calendar.aspx",
        cache: false,
        data: postdata,
        dataType: "text",
        error: getFail
    });
  }
  catch (e) {
    alert(e);
  };

  function getFail(data, textStatus, jqXHR) {
    alert(textStatus);
  };
};

Однако, пытаясь читать со следующим:

string processTaskPostback(HttpContext context)
{
    string taskString = String.Empty;
    HttpContext.Current.Request.InputStream.Position = 0;
    using (StreamReader inputStream = new StreamReader(HttpContext.Current.Request.InputStream))
    {
        taskString = inputStream.ReadToEnd();
        return taskString;
    }
}

Результатом является taskString, содержащий значение, которое, по-видимому, является ссылкой на пакет состояний, а не на ожидаемую строку:

__VIEWSTATE=RGl0btFvBz93yS%2BQp%2FHpk1pT9AohsFsyJI90RjT3BvtWkw3DPYDjGhqIGHSADWaCoXsRXxWSmdlwsbebI7qMhxn%2FEKZiDTH9RB6TB97HFurOenlTG3sXGe6r2a2MqaTCIkYUZVbLp8FQuyPQmG%2FdKCXeUrjUIYUGBoD%2FvB8xF3ThhppKd3OAsPydvVQkB4z4CkygDtcZwP6IckX52YX%2BE3ttAEOOUVfjjMY5lXaiB56EwldbcRvJP6nIKz1SeQodGNgeYSOFnMO1zht0ouMRBbUYb5K3fAuB5zHFogpmyfd4K9whgnGKwcyf1dXzwlli&newEvent_title=1&newEvent_date=2018-03-21&newEvent_description=1&addNewPersonalEvent=Add+Event&__VIEWSTATEGENERATOR=B66867E1&__EVENTVALIDATION=9z3SFY4WzFb%2BAXZpcZVK5W7ZwbkYcJ3I43tG39FSX4H7PRykGGlQ4TS7%2F%2Bfs34wWJXo1WSdDRheOljoJFm8Cc6B0Q%2Bwl3LbkKGAKt1ifl%2F6B5XBxW9eUwE%2BeYa0dlJIiY08t05OKyGu%2FF03cZOgZnbSNYMlTcajFwaWwnU5PHKLsXd%2FNVWyxfvoEy%2BAFmFRc

Что мне здесь не хватает?

asp.net раньше включал состояние просмотра по умолчанию, вы можете отключить его: stackoverflow.com/a/647456/264607. Если вы публикуете сообщение со страницы, содержащей viewstate, он его отправит. Обычно это скрытое поле в форме. У вас есть форма в taskReturnDiv?

BlackICE 20.03.2018 19:29

@BlackICE Нет, наоборот. taskReturnDiv находится внутри формы.

Scary Spice 20.03.2018 19:47

@BlackICE Повлияет ли отключение состояния просмотра на использование данных сеанса в области HttpContext.Current?

Scary Spice 20.03.2018 19:48

@BlackICE Между прочим, отключение Viewstate ни на что не повлияло.

Scary Spice 20.03.2018 19:51

попробуйте просмотреть источник и посмотрите, есть ли у вас эти скрытые входы в taskReturnDiv

BlackICE 20.03.2018 20:26

Почему вы используете StreamReader?

ElasticCode 20.03.2018 20:33

Как вы звоните в processTaskPostback?

wazz 20.03.2018 21:06
The expected result is a plain-text string with some simple values: Пожалуйста, обновите свое сообщение содержимым простой текстовой строки.
mjwills 20.03.2018 21:42

если вы пытаетесь использовать статический WebMethod для обслуживания вызова ajax (), используйте следующий декоратор, и метод должен быть статическим и находиться внутри вашего класса calendar.aspx.cs // Код [WebMethod ()] общедоступный статический человек GetData (строковое имя)

Antonio Avndaño Duran 20.03.2018 21:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
9
176
1

Ответы 1

//static WebMethod to serve ajax() call

    [WebMethod()]

    public static person GetData(string name)

    {

        person p= new person();

        p.name = name;

        return p;

    }

}

// Вызов должен выполняться таким образом

jQuery.ajax ({

        url: '[ASPX file Name Here].aspx/GetData',

        type: "POST",

        dataType: "json",

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

        contentType: "application/json; charset=utf-8",

        success: function (data) {

            alert(JSON.stringify(data));

        }

    });

Возможно, это правильный ответ, но что он делает не так и как это исправить?

Rob Sedgwick 20.03.2018 23:26

Другие вопросы по теме