我正在使用Angular JS以JSON的形式獲取數據並將其發佈到我的MVC 4控制器。除了DateTime/DateTime之外,我的所有屬性都可以正確轉換嗎?類型。我希望有一個「設置並忘記它」的方法來處理日期,以便添加的新類和/或屬性不必記住進行一些特殊的轉換來正確處理日期。我看到了以下方法和可能的缺點。人們在同一個平臺上使用什麼方法? MVC4中是否有一些正確處理這個問題,我可能沒有配置?任何建議將不勝感激。使用MVC模型綁定DateTime的角度js JSON數據?
- 自定義模型聯編程序。詳見博客。可能的 性能問題。
- 在JS端進行一些修改。詳見Robert Koritnik's blog。這似乎不適用於Angular js,也許在$ http.post中有一個設置可以讓這個工作,但是我的對象有這個方法的所有空值。
- 有一些額外的屬性,例如可以在POST操作中轉換的FormattedDateTime。這不是一個'設置它,忘記它的方法',雖然它確實允許在客戶端仍然在'/ 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; }
}
角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);
});
}
}
菲德勒斯POST:
HTTP/1.1 200 OK緩存控制:私人內容類型:應用/ JSON; 的charset = UTF-8服務器:Microsoft-IIS/8.0 X-AspNetMvc-版本:4.0 X-ASPNET-版本:4.0.30319 X-SourceFiles:???? = UTF-的8B YzpcdXNlcnNcbmlja1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEyXFByb2plY3RzXFZhbGlkYXRpb25UZXN0XEhvbWVcR2V0UGVyc29uXDE = = X- Powered by By:ASP.NET Date:Wed,16 Jan 2013 14:48:34 GMT Content-Length:124
{「FirstName」:「Bob」,「LastName」:「Smith」,「BirthDate」 :「/日期(695573315098)/」,「ApprovedForSomething」:「/日期(1358261315098)/」}
正如你可以與小提琴手數據的日期快到了作爲一個JSON日期見,但擊中時張貼我那麼DateTime屬性是不正確的,並且DateTime?屬性爲null。
我會菲爾哈克的解決方案去。 JSON日期在離開服務器時應該採用JavaScript可讀的格式。完全是JavaScript Object Notation。 –
哈克+1。使用JSON。.NET將解決日期時間問題以及愚蠢的.NET字典序列化格式。 –