用C#读取Post数据

本文关键字:数据 Post 读取 | 更新日期: 2023-09-27 17:58:49

我正在使用Jquery Ajax函数从html页面发送数据,&我正在用C#在后台阅读它。

当我使用Get时,数据发送成功,但当我切换到Post时,数据值在后端为null。

HTML:

<form onsubmit="AddData();>
<input type="submit"value="Submit" />
</form>

Javascript:

function AddData() {
            var RData = GetRData();
            var postData = { 'Function': "AddData", 'RData': JSON.stringify(RData) };
            $.ajax(
            {
                type: "POST",
                url: "/Services/GetRData.aspx",
                data: postData,
                contentType: "application/json; charset=utf-8",
                dataType: "jsonp",
                jsonp: 'jsoncallback',
                success: function (result) { 
                AddClubCallBackFunction(result) },
                error: function (msg) {
                    alert('Sorry, an error occured while adding your Data!');
                }
            });
        }

C#:

string FunctionName =Request["Function"]; //null
string RData = Request.Form["RData"]; //null

那么,我做错了什么&我该怎么修?

更新:

我刚删除

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

它奏效了。

用C#读取Post数据

假设上面的代码正是你正在执行的,那么似乎确实有一个拼写错误:

var Data = GetRData();
var postData = { 'Function': "AddData", 'RData': JSON.stringify(RData) };

您的变量是Data,但您在RData上调用的JSON.Stringify尚未声明(因此属性为null)。

更新

根据您上次的评论,我认为这是一个JSON格式问题。当您试图手动构建JSON对象时,通常会发生这种情况,而您在解决方案中部分地正在进行这种操作。我会把你的代码改为:

var rdata = GetRData();
var postData = { Function: 'AddData', RData: JSON.stringify(rdata) };
$.ajax({
    ...
    data: JSON.stringify(postData),
    ...
});