これらのjsonオブジェクトを背後のコードに渡そうとしています
var obj = {
Name: '1',
Starting: '3',
Timeline: [
{
StartTime: '111',
GoesFor: '111'
}
,
{
StartTime: '112',
GoesFor: '112'
}
]
};
もちろん、次のステップはオブジェクトを文字列化することです
var data = JSON.stringify(obj);
その後、jqueryajax呼び出しを使用して値をコードビハインドに渡します
$.ajax({
url: 'default.aspx/test',
type: 'POST',
contentType: 'application/json',
data: data,
success: function(result) {
$('#result').html(result.d);
}
});
重要なのは、jqueryライブラリからエラーが発生することです
POST http://localhost:63050/default.aspx/test 500 (Internal Server Error)
この問題は、obj変数を削除し、次のようにJSON.stringfyメソッドに入れると解決されます。
var data = JSON.stringify({
obj: {
Name: '1',
Starting: '3',
Timeline: [
{
StartTime: '111',
GoesFor: '111'
}
,
{
StartTime: '112',
GoesFor: '112'
}
]
}
});
関数内で宣言して初期化する代わりに、オブジェクト変数全体をjson.stringify関数に渡す方法はありますか?
皆さんが知りたいと思った場合、背後にある私のコードは次のようになります
public class MyModel
{
public string Name { get; set; }
public string Starting { get; set; }
public testing2[] Timeline { get; set; }
}
public class testing2
{
public string StartTime { get; set; }
public string GoesFor { get; set; }
}
[WebMethod]
public static string Test(MyModel obj)
{
return "Hello from test" + obj.Name + obj.Starting + obj.Timeline[0].StartTime + obj.Timeline[1].StartTime;
}