>定制模型活页夹.详情请参阅Phil Haack博客.可能
性能问题.
>在JS方面进行一些修改.详见Robert Koritnik’s blog.这似乎不适用于Angular js,也许$http.post中有一个设置允许它工作但我的对象使用这种方法的所有空值.
>有一些额外的属性,如FormattedDateTime,可以在POST操作上转换.虽然它确实允许在客户端正确显示仍处于’/ Date(695573315098)/’格式的日期,但这不是’设置并忘记它的方法’
请参阅以下代码示例.
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 Cache-Control: private Content-Type: application/json;
charset=utf-8 Server: Microsoft-IIS/8.0 X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319 X-SourceFiles:
=?UTF-8?B?YzpcdXNlcnNcbmlja1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEyXFByb2plY3RzXFZhbGlkYXRpb25UZXN0XEhvbWVcR2V0UGVyc29uXDE=?=
X-Powered-By: ASP.NET Date: Wed,16 Jan 2013 14:48:34 GMT
Content-Length: 124{“FirstName”:”Bob”,”LastName”:”Smith”,”BirthDate”:”/Date(695573315098)/”,”ApprovedForSomething”:”/Date(1358261315098)/”}
正如您在Fiddler数据中看到的那样,日期将作为JSON日期过来,但是当遇到POST方法时,DateTime属性不正确并且DateTime? property为null.
我最近遇到了这个问题并利用了ApiController对ISO 8601日期格式的支持.
这是一些信息:
http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx