关于json:空数据转换为{1/1/0001 12:00:00 AM}

Empty data converts to {1/1/0001 12:00:00 AM}

本问题已经有最佳答案,请猛点这里访问。

我有iddate的模型。然后我把它设置为angular.toJson,并发送到服务器。问题在于:如果我的日期为空,则服务器上模型的日期字段显示为1/1/0001 12:00:00 AM,但不为空。如何解决这个问题?我需要null

这是AngularJS控制器,我的函数在这里调用

1
2
3
$scope.filterModel = function (filter) {
    postService.getFilteredByUserId($scope.bindModel, angular.toJson(filter));
};

这是我的服务器函数,它得到了这个模型

1
2
3
4
5
[HttpPost]
public IEnumerable<TimesheetModel> FilterModel(TimesheetFilterModel filter)
{
    return TimesheetService.FilterTimesheetListByFilter(filter);
}

以下是模型:

1
2
3
4
5
6
7
public class TimesheetFilterModel
{
    public int      UserId { get; set; }
    public DateTime DateFrom { get; set; }
    public DateTime DateTo { get; set; }
    public int      TicketType { get; set; }
}


1
2
3
4
5
6
7
8
9
10
11
12
public class TimesheetFilterModel
{
    public int      UserId { get; set; }
    public DateTime? DateFrom { get; set; }
    public DateTime? DateTo { get; set; }
    public int      TicketType { get; set; }

    public TimesheetFilterModel() {
        DateFrom = null;
        DateTo = null;
    }
}

默认情况下,日期时间不可为空。您需要使它们可以为空,并在构造函数中将它们设置为空。


您可以使datetime属性为空,以便在获取空值时处理空值。

datetime是C中的值类型,因此不能直接在其中分配空值。

1
2
DateTime? nullableDate;
dateSample.Value = null;

在您的情况下,它将默认为DateTime.MinValue