【发布时间】:2013-11-01 22:06:58
【问题描述】:
我已经做了好几个小时了,但还是没弄好……有人请让我摆脱痛苦!
javascript:
var calcParams = {}
calcParams.calcName="gwp_mat";
calcParams.components=124.332;
//return manager.impactCalc(calcName, componentArray)
return postData("{calcParams2:" + JSON.stringify(calcParams) + "}")
.then(querySucceeded)
.fail(queryFailed);
function postData(cp) {
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json",
url: "/api/breeze/testCalc",
data: cp,
success: function (data) {
alert(data);
return data;
},
error: function (error) {
jsonValue = jQuery.parseJSON(error.responseText);
}
});
}
型号:
Public Class calcParams2
Public calcName As String
Public calcNumber As Double
End Class
服务器代码:
<System.Web.Services.WebMethod()> _
Public Function testCalc(cp As calcParams2) As Double
Dim c As New calcs
Return cp.calcNumber
End Function
如果我调试它,javascript postData函数中的“cp”参数是:
"{calcParams2:{"calcName":"gwp_mat","components":124.332}}"
然而在我的网络方法中,calcname 是“nothing”,components 是“0.0”
如果我不使用 JSON.Stringify,我会在我的 web 方法中得到一个空对象。我想我有一个版本的代码,其中传递了 calcName 但组件值仍然为零。那是我刚刚调用“return postData(JSON.stringify(calcParams))”的时候。
【问题讨论】:
标签: javascript jquery json asp.net-web-api