刚刚使用.NET Core启动了一个新项目.添加了我的Web API控制器和相关方法.使用Postman我创建了一个JSON对象并将其发布到我的控制器方法.请记住,JSON对象与控制器方法中的Object参数完全匹配.
在调试模式下,我可以看到对象,它不是null,属性在那里,但是prop值默认为它们的代表类型,0for int等.
我之前从未见过这种行为......所以我使用了完全相同的代码和对象,并在一个带有Web API 2控制器的MVC项目中进行了复制.
我缺少什么,我不能在.NET Core中POST JSON和模型绑定吗?
阅读这篇文章似乎我不能,除非我发送形式POST或查询字符串变量顺便说一句工作正常.
https://lbadri.wordpress.com/2014/11/23/web-api-model-binding-in-asp-net-mvc-6-asp-net-5/
JSON:
{
"id": "4",
"userId": "3"
"dateOfTest": "7/13/2017"
}
Run Code Online (Sandbox Code Playgroud)
方法:
[HttpPost]
[Route("test1")]
[AllowAnonymous]
public IActionResult Test(Class1 data)
{
return Ok();
}
Run Code Online (Sandbox Code Playgroud) c# model-binding asp.net-web-api2 asp.net-core asp.net-core-webapi
我有一个Angular集合绑定到一个从MVC JsonResult填充的转发器.
$scope.loadData = function () {
$http.get('/Product/GetDiscountCodes')
.then(function (result) {
console.log(result);
$scope.discountCodes = result.data.DiscountCodes;
$scope.selected = {};
});
};
Run Code Online (Sandbox Code Playgroud)
转发器中的一个字段填充了日期.从服务器返回的日期是C#DateTime,如下所示:
2015年1月5日上午12:02:00
但是当它被Angular绑定时,显示如下:
/日期(1420434120000)/
如何在mm/dd/yyyy格式的文本字段中正确显示日期?
我尝试了ui-utils日期格式但是没有用.
我也尝试创建自己的指令,正确格式化日期,但是当发生保存事件时,发送到服务器端方法的日期全部被抬起.
function inputDate() {
return {
require: 'ngModel',
link: function (scope, element, attrs, ngModelController) {
ngModelController.$parsers.push(function (data) {
if (data === null) { return null; }
var d = moment(data).format('YYYY-MM-DD');
return d;
});
ngModelController.$formatters.push(function (data) {
if (data === null) { return null; }
return moment(data).format('MM/DD/YYYY');
});
}
}
}
angular.module('discountApp')
.directive('inputDate', inputDate);
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!