ASP.NET MVC 4でサーバー側のメソッドを簡単に呼び出そうとしています。これを行うには、メソッドをjQueryで呼び出します。メソッドが呼び出され、プロパティは正しいですが、このメソッドの応答は正しくありません。JSON.NETを使用して.NETオブジェクトをシリアル化しようとしています。
(FireBugを使用して)次の応答が返されることがわかります。
"{\"VisitorId\":\"11a0606b-5336-4fa7-b50f-3edf97d8301b\",\"PhoneToTransfer\":\"61793650\",\"PhoneToNotify\":\"\",\"EmailToNotify\":\"mcoroklo@gmail.com\",\"EmailToTransfer\":\"\",\"OrderState\":\"PaymentPending\",\"DestinationAddress\":\"1Ccypfi3rnXosUgY6p1sQVXFyddFvwLFEJ\",\"TransactionHash\":\"\",\"Value\":12.0,\"Confirmations\":-1,\"TransactionDate\":\"2013-01-09T22:36:33.7991116+01:00\"}"
これは正しいJSONとして解析されないため、理由がわかりません。また、Firebugの[JSON]タブには、[このオブジェクトに表示するプロパティはありません]と表示されます。
私のcontent-typeとdataTypeは呼び出しで正しいと確信しています。
これは、JSON.NETライブラリを使用してJSONを作成するための私のコードです。
[HttpPost]
public JsonResult StartPurchase(string phoneReceiver, string emailNotify, string value)
{
if (ModelState.IsValid)
{
BlockchainPayments block = new BlockchainPayments();
var address = block.GetAddress(BtcContext.PurchaseSession);
decimal val = 0;
decimal.TryParse(value, out val);
var ps = new PurchaseService();
var purchase = ps.StartPurchase(BtcContext.PurchaseSession, phoneReceiver, emailNotify, address.destination, val);
return Json(JsonConvert.SerializeObject(purchase));
}
return Json("Error");
}
これはjQuery呼び出しです:
$.ajax({
type: "POST",
url: url,
data: dataToSend,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert('Awesome destination succes');
},
error: function (date) {
alert('An occurred while purchasing. Please try again later');
}
});
有効なJSONが返されない理由はありますか?そしてそれを解決する方法についてのアイデアはありますか?