3

c#.netアプリケーションでJSONに投稿されたデータを読みたいですか?私はこのJSONとPOSTメソッドに非常に慣れていませんか?

誰か助けてくれませんか?page1からデータを投稿しています。purspoeをテストするために他のpage2(私の場合は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 () { }
    });
}
4

3 に答える 3

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に渡します。

于 2012-08-20T08:23:04.680 に答える
0

contentTypeを要求するのではなく、aspx(WebForm)を要求する場合は、を変更しないでください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();
于 2012-08-20T08:32:20.927 に答える
0

Jqueryを使用していて、データにJSONをスローすると、通常のPostで変更されますが、現在行っていることは問題を引き起こし、コードを次のように変更します。

 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 を使用する場合は、この記事を参照してください。

http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2010/08/22/using-c-4.0-and-dynamic-to-parse-json.aspx

于 2012-08-20T08:14:23.447 に答える