我想读取在我的c#.net应用程序中以JSON发布的数据?我对这个JSON和POST方法很新吗?
任何人都可以帮助我吗? 我从page1发布数据。测试其他第2页(在我的情况下是smsstaus.aspx)。 我想读一下JSON在Page2的PageLoad中发布数据。
示例代码.....
function SendSMSStatus() {
$.ajax({
type: "POST",
url: "myurl/smsstatus.aspx",
data: '{"SmsSid":"' + $("#<%= txtSmsSid.ClientID%>").val() + '","SmsStaus":"' + $("#<%= txtSmsStaus.ClientID%>").val() + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert('update the db here');
},
error: function () { }
});
}
答案 0 :(得分:3)
您可以在smsstatus.aspx中定义 WebMethod (例如SendStatus) 一个实现可能看起来像这样(从我的头脑中)
[WebMethod]
public static void SendStatus(string sid, string status)
{
// retrieve status
}
现在您可以创建一个使用此方法的请求,如下所示:
function SendSMSStatus() {
$.ajax({
type: "POST",
url: "myurl/smsstatus.aspx/SendStatus",
data: '{"SmsSid":"' + $("#<%= txtSmsSid.ClientID%>").val() + '","SmsStaus":"' + $("#<%= txtSmsStaus.ClientID%>").val() + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert('update the db here');
},
error: function () { }
});
.NET会将json字符串反序列化并将它们作为参数传递给 SendStatus
答案 1 :(得分:0)
当你使用Jquery并且你在数据中抛出JSON它会在普通的帖子中改变,但你现在正在做的就是将问题改成代码:
function SendSMSStatus() {
$.ajax({
type: "POST",
url: "myurl/smsstatus.aspx",
data: {"SmsSid":$("#<%= txtSmsSid.ClientID%>").val(),"SmsStaus": $("#<%= txtSmsStaus.ClientID%>").val()},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert('update the db here');
},
error: function () { }
});
}
你可以使用正常的POST,但如果你想在C#中使用JSON,请参阅此aritcle
答案 2 :(得分:0)
如果您想要请求aspx(WebForm)而不是contentType
,请不要更改WebMethod
。 (将数据发送到服务器时,请使用此内容类型。默认为“application / x-www-form-urlencoded”)。
$.ajax({
type: "POST",
url: "myurl/smsstatus.aspx",
data: '{"SmsSid":"' + $("#<%= txtSmsSid.ClientID%>").val() + '","SmsStaus":"' + $("#<%= txtSmsStaus.ClientID%>").val() + '"}',
dataType: "json", // The type of data that you're expecting back from the server.
success: function (msg) {
alert(msg.d);
},
error: function () { }
});
从Page_Load
处理程序
//Read Form data
string testData = Request["SmsSid"] + " " + Request["SmsStaus"];
//Prepare Json string - output
Response.Clear();
Response.ContentType = "application/json";
Response.Write("{ \"d\": \"" + testData +"\" }");
Response.Flush();
Response.End();