次のようにJSON文字列をasp.net MVCに投稿しています。
AJAX 呼び出し
$.ajax({
type: "POST",
url: "@(storeLocation)IDR/OpcInsertCustomerProfile/",
data: JSON.stringify(currSelection),
contentType: "application/json",
success: function(data) {
alert('success : ' + JSON.stringify(data));
},
error: function(data) {
alert('Error : ' + JSON.stringify(data));
}
}
);
コントローラーで:
[HttpPost]
[ActionName("OpcInsertCustomerProfile")]
public JsonResult OpcInsertCustomerProfile(string currSelectionData)
{
try
{
JavaScriptSerializer ser = new JavaScriptSerializer();
var res = ser.Serialize(currSelectionData);
return Json(currSelectionData, JsonRequestBehavior.AllowGet);
}
catch (Exception exc)
{
return Json(new { error = 1, message = exc.Message });
}
}
デバッガーは、アクションが正常に呼び出されたことを示しますが、受け取った着信文字列パラメーターは常に null です。Firebug 'post' は、発信パラメーターが適切な json オブジェクトであることを示しています。JSON 文字列が着信パラメーターとして表示されることを期待しています。適切なオブジェクトにデシリアライズしたくないことに注意してください。私がやりたいのは、文字列をJSON形式で「そのまま」データベースに保存することだけです。後でそれを取得し、そのまま Javascript に渡す必要があります。