当使用 Angular JS 将复杂对象的日期时间和日期时间回发到服务器时?值未正确绑定。我尝试过 JSON.stringify 无济于事。我已经发布了一个相关问题,但可能太笼统了。我真正需要知道的是如何正确传递这些日期。我目前正在做的是使用 js 中的解决方法来转换日期,但我宁愿不这样做,而只是以 Angular 中我需要的形式获取日期然后传回正确的值。
如何绑定到这些日期时间/日期时间?值正确吗?请参阅以下代码示例和 Fiddler 发布结果。
C# 类:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
public DateTime? ApprovedForSomething { get; set; }
}
Angular JS 控制器:
function PersonController($scope, $http) {
$scope.getPerson = function () {
$http.get('../../Home/GetPerson/1').success(function (data) {
$scope.Person = data;
});
}
$scope.updateApprovedForSomething = function () {
$http.post('../../Home/UpdatePerson', { person: $scope.Person }).success(function (data) {
console.log(data);
});
}
}
提琴手帖子:
HTTP/1.1 200 OK 缓存控制:私有内容类型:application/json;
charset=utf-8 服务器:Microsoft-IIS/8.0 X-AspNetMvc-版本:4.0
X-AspNet-版本:4.0.30319 X-SourceFiles:
=?UTF-8?B?YzpcdXNlcnNcbmlja1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEyXFByb2plY3RzXFZhbGlkYXRpb25UZXN0XEhvbWVcR2V0UGVyc29uXDE=?=
X-Powered-By:ASP.NET 日期:2013 年 1 月 16 日星期三 14:48:34 GMT
内容长度:124
{“名字”:“鲍勃”,“姓氏”:“史密斯”,“出生日期”:“/日期(695573315098)/”,“ApprovedForSomething”:“/日期(1358261315098)/”}
这是服务器端的结果。日期时间绑定到一个不正确的新日期时间值,并且日期时间?一片空白。
如果有人有更好的解决方案,请随时更新答案。
可能有更好的解决方案,但我所做的是非常简单的解决方法。
只需为 DateTime 对象创建一个封装属性以字符串并将其用于绑定目的。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
public DateTime? ApprovedForSomething { get; set; }
public DateTime BirthDateAsString
{
get { return BirthDate.ToShortDateString();}
set { DateTime.Parse(value, BirthDate);}
}
}
通过 http,所有对象都被视为字符串,但 ASP.NET 足够智能,可以提供模型绑定功能。但是它无法将 JavaScript Date 对象绑定到 .NETDateTime
object.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)