定義されたページ メソッドにオブジェクトを渡そうとしています。3 つのテキスト ボックスから収集したデータを渡そうとしています。
ページ メソッド
[System.Web.Services.WebMethod]
public static string saveDataToServer(object csObj)
{
// Function Body.
}
JavaScript/jQuery
$("#osmSendMsg").click(function () {
debugger;
var cntDetails = {
cntName : $("#osmContactName").val(),
cntEmail : $("#osmContactEmail").val(),
cntMsg : $("#osmContactMessage").val()
}
PostDataToServer(cntDetails,"Please wait...","/ContactUs.aspx/saveDataToServer","csObj");
});
PostDataToServer
// Post data to server (ajax call).
function PostDataToServer(dataToSend, strMessagetoShow, strMethodToCall, jsonObjectName) {
debugger;
/*
dataToSend Contains the JSON Object.
submitType 1 == Normal Submit; 2 == Submit and Print.
strMessagetoShow Text that is displayed in the Please Wait Window.
*/
var tempurl = strMethodToCall;
var tempdata;
$.ajax({
url: tempurl,
type: "POST",
async: false,
dataType: "json",
data: "{" + jsonObjectName + ":" + JSON.stringify(dataToSend) + "}",
//timeout: 30000,
contentType: "application/json; charset=utf-8",
success: function (data) {
tempdata = data;
},
error: function (result) {
tempdata = null;
}
}); //end of the ajax call
return tempdata;
} //End of the post Data
これで、呼び出しが Web メソッドに到達します。問題ない。オブジェクトも取得していますが、オブジェクトを処理するにはどうすればよいですか?
ご覧のとおり、それが私が得ているものです。また、クラスを宣言してパラメーターとして渡そうとしましたが、そのプロパティはすべて空です。データがキーと値のペアとして表示されていることに気付いた場合。それを Dictionary に変換することはできますが、それは複雑な解決策だと思います。
より簡単な解決策を歓迎します!