使用C#读取发布数据

时间:2013-02-11 12:16:26

标签: c# javascript jquery post

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

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

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",

它有效。

1 个答案:

答案 0 :(得分:1)

假设上面的代码正好你正在执行什么,似乎确实存在拼写错误:

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

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

<强>更新

根据您的上一条评论,我会说这是一个JSON格式问题。当您尝试手动构建在解决方案中部分执行的JSON对象时,通常会发生这种情况。我会将您的代码更改为:

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