【发布时间】:2015-10-09 14:23:32
【问题描述】:
我有一个简单的 AngularJS ajax 调用如下。
$scope.modelObject.sendRequest = function (requestType) {
var dataTemp = { first: 7, second: 3 } ;
alert($httpParamSerializer(dataTemp));
$http({
url: '/api/bindings/sumnumbers',
data: $httpParamSerializer(dataTemp),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}
).success(function () {});
}
在另一端,我有一个带有 sumnumbers 操作方法的 web api BindingsController,如下所示。
[HttpGet]
[HttpPost]
public async Task<IHttpActionResult> SumNumbers() {
if (Request.Content.IsFormData()) {
NameValueCollection jqData = await Request.Content.ReadAsFormDataAsync();
int firstValue, secondValue;
if (TryGetValues(jqData, "first", "second", out firstValue,
out secondValue)) {
return Ok(firstValue + secondValue);
} else if (TryGetValues(jqData, "value1", "value2", out firstValue,
out secondValue)) {
return Ok(firstValue - secondValue);
}
}
return StatusCode(HttpStatusCode.BadRequest);
}
javascript 代码alert($httpParamSerializer(dataTemp)); 中的警报正确显示了数据。
我在 action 方法中放置的断点被击中,表明调用成功。但问题是 TryGetValues(jqData ... 无法获得任何值。看到jqData(NameValueCollection) 的AllKeys 属性根本没有任何键!!。有人可以建议什么是我失踪了?
【问题讨论】:
标签: ajax angularjs asp.net-web-api2