Я настраиваю простой метод 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
Что мне здесь не хватает?
@BlackICE Нет, наоборот. taskReturnDiv находится внутри формы.
@BlackICE Повлияет ли отключение состояния просмотра на использование данных сеанса в области HttpContext.Current?
@BlackICE Между прочим, отключение Viewstate ни на что не повлияло.
попробуйте просмотреть источник и посмотрите, есть ли у вас эти скрытые входы в taskReturnDiv
Почему вы используете StreamReader?
Как вы звоните в processTaskPostback?
The expected result is a plain-text string with some simple values: Пожалуйста, обновите свое сообщение содержимым простой текстовой строки.
если вы пытаетесь использовать статический WebMethod для обслуживания вызова ajax (), используйте следующий декоратор, и метод должен быть статическим и находиться внутри вашего класса calendar.aspx.cs // Код [WebMethod ()] общедоступный статический человек GetData (строковое имя)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


//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));
}
});
Возможно, это правильный ответ, но что он делает не так и как это исправить?
asp.net раньше включал состояние просмотра по умолчанию, вы можете отключить его: stackoverflow.com/a/647456/264607. Если вы публикуете сообщение со страницы, содержащей viewstate, он его отправит. Обычно это скрытое поле в форме. У вас есть форма в taskReturnDiv?