我正在使用 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",
它奏效了。
最佳答案
假设上面的代码正是您正在执行的代码,确实有一个拼写错误:
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),
...
});
关于c# - 使用 C# 读取发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14811674/