在 Ajax 中解壓 json 時遇到錯誤
未捕獲的型別錯誤:無法讀取未定義的屬性(讀取“GrossSalesPriceForUser”)
在控制器中我有類,我創建物件并將值發送到新物件我想現在將其發送給查看
控制器
public class CalsEarlyStatementForUser
{
public decimal GrossSalesPriceForUser { get; set; }
public decimal PaidBeneficiaryForUser { get; set; }
}
//(...)
//method
CalsEarlyStatementForUser objCalsEarlyStatementForUser = new CalsEarlyStatementForUser();
objCalsEarlyStatementForUser.GrossSalesPriceForUser = grossSalesPriceForUser;
objCalsEarlyStatementForUser.PaidBeneficiaryForUser = paidBeneficiaryForUser;
var jsonData = JsonConvert.SerializeObject(objCalsEarlyStatementForUser);
return Json(jsonData);
}
看法
$.ajax({
url: "@Url.Action("CalcEarlyStatement", "Calculations")",
type: "GET",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: {"data": JSON.stringify(data)},
cache: false,
success: function (result) {
// it dont work
$("#GrossSalesPriceForUser")
.dxNumberBox("instance")
.option("value", result.objCalsEarlyStatementForUser.GrossSalesPriceForUser);
$("#PaidBeneficiaryForUser")
.dxNumberBox("instance")
.option("value", result.objCalsEarlyStatementForUser.PaidBeneficiaryForUser);
},
failure: function (error) {
alert(error);
},
error: function (error) {
alert(error);
}
});
uj5u.com熱心網友回復:
這些行是多余的:
var jsonData = JsonConvert.SerializeObject(objCalsEarlyStatementForUser);
return Json(jsonData);
結果,您沒有回傳一個object,而只是一個JSON string。所以result客戶端代碼中的變數只是一個字串,沒有objCalsEarlyStatementForUser屬性。您必須在客戶端反序列化字串才能獲取物件。
相反,只需回傳物件本身:
return Json(objCalsEarlyStatementForUser);
服務器端框架將為您處理通過網路對其進行序列化,而客戶端框架將為您處理從回應中對其進行反序列化。否則,如果您在服務器上對其進行雙重序列化,則需要在客戶端對其進行雙重反序列化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488922.html
