使用C#读取POST数据不会返回预期结果

时间:2018-03-20 18:17:53

标签: javascript c# jquery asp.net post

我正在设置一个简单的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中的结果包含一个似乎是对statebag的引用而不是预期字符串的值:

__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

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

//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));

        }

    });