gpt4 book ai didi

json - Angular js JSON数据与DateTime的MVC模型绑定(bind)?

转载 作者:行者123 更新时间:2023-12-04 08:45:18 26 4
gpt4 key购买 nike

我正在使用 Angular JS 将数据作为 JSON 获取并发布到我的 MVC 4 Controller 。除了 DateTime/DateTime 之外,我的所有属性都正确转换?类型。我希望有一种“设置并忘记它”的方法来处理日期,这样添加的新类和/或属性就不必记住进行一些特殊的转换来正确处理日期。我已经看到了以下方法和可能的缺点。人们在同一平台上使用什么方法? MVC4 中有什么东西可以正确处理我可能没有配置的吗?任何建议将不胜感激。

  • 自定义模型绑定(bind)器。详情见 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 Controller :
        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);
    });
    }
    }

    fiddler POST:

    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?属性为空。

    enter image description here

    最佳答案

    您是否可以选择将 AJAX 回发切换为由 WebApi 的 ApiController 处理?而不是 MVC Controller ?

    我最近遇到了这个问题,并利用了 ApiController 对 ISO 8601 日期格式的支持。

    这里有一些信息:
    http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx

    关于json - Angular js JSON数据与DateTime的MVC模型绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14361433/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com