我遇到的问题是我从一个简单的angularjs页面将对象发布到MVC Core控制器。
我的MVC操作的对象没有绑定,尽管对象本身不是null,这是常见的问题。
谁能看到我做错了什么?
这是我的角度服务代码:
this.getQuote = function (priceRequest) {
return $http.post('/quote/getcost', { priceRequest });
};
由以下人员调用:
quoteService.getQuote(this.quoteData).then(function (cost) {
$scope.quoteData.quoteCost = cost.data;
});
其中this.quoteData是:
$scope.quoteData = {
detailLevel: '0',
fileLengthHours: 0,
fileLengthMinutes: 1,
excessiveSpeakersCount: 1,
industry: null,
deliveryTime: '1',
additionalInformation: '',
quoteCost: null
};
最后我的C#MVC核心行动:
[HttpPost]
public JsonResult GetCost([FromBody]PriceRequest priceRequest)
{
var price = _priceCalculator.GetPrice(priceRequest);
return new JsonResult(price);
}
这是PriceRequest对象:
public class PriceRequest
{
public JobDetailLevel DetailLevel { get; set; }
public int FileLengthHours { get; set; }
public int FileLengthMinutes { get; set; }
public int? ExcessiveSpeakersCount { get; set; }
public JobIndustry Industry { get; set; }
public JobDeliveryTime DeliveryTime { get; set; }
public string AdditionalInformation { get; set; }
}
谁能看到我做错了什么?
答案 0 :(得分:1)
好的,这篇帖子很有礼貌: Asp.net core MVC post parameter always null
我需要将它添加到我的startup.cs:
.AddJsonOptions(jsonOptions =>
{
jsonOptions.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
});
感谢那些试图提供帮助的人。
答案 1 :(得分:0)
尝试从角度侧的priceRequest变量周围删除 {} 。
像:
return $http.post('/quote/getcost', priceRequest);