[C#]将日期从 json 转换为日期时间

标签: json AngularJS C#
发布时间: 2017/2/24 2:54:08
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个函数,将一步发送到我的 c# 控制器。

$scope.saveProgress = function () {

    var step6 = {
        Id: $scope.stepId,
        ProblemId: $scope.problemId,
        WhenOptions: $scope.whenOptions,
        CounterMeasures: $scope.counterMeasures,
        CounterMeasureWhens: $scope.counterMeasureWhens,
        CompletedDate: $scope.CompletedDate
        // step 6 specific data
    };

    $http.post(ROOT + '/step/SaveA3Step6/', step6)
        .success(function (result) {
            // log to console?
        }).
        error(function (data, status, headers, config) {
            // log to console?
        });
};

一切都将发送精细但作为我的 c# 控制器中的 null 结束的日期总是。

public JsonResult SaveA3Step6(A3Step6 a3Step6)
    {
        try
        {
            a3Step6.Save();
            return Json("OK", JsonRequestBehavior.AllowGet);
        }
        catch (Exception e)
        {
            return Json("Error" + e.Message);
        }
    }

在调试时我发现 $scope.CompletedDate 的格式是 "/Date(1426636800000)/" 。 而是因为我在 c# 中的 A3Step6 对象期待 datetime 其显示 null。

有没有办法转换的我 $scope.CompletedDate 为 datetime 在我 $scope.saveProgress 函数之前我寄回给我的 c# 控制器?

解决方法 1:

您可以重用 Angularjs 日期筛选器。你必须注入 $filter 控制器的构造函数中。

var cpltDate = $filter('date')($scope.CompletedDate, 'MM/dd/yyyy');
var step6 = {
    Id: $scope.stepId,
    ProblemId: $scope.problemId,
    WhenOptions: $scope.whenOptions,
    CounterMeasures: $scope.counterMeasures,
    CounterMeasureWhens: $scope.counterMeasureWhens,
    CompletedDate: cpltDate
};

完整的文档筛选器的日期︰ https://docs.angularjs.org/api/ng/filter/date

赞助商