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

时间:2015-09-29 08:07:45

标签: json angularjs asp.net-mvc

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

这是我的函数调用

的angularjs控制器
$scope.filterModel = function (filter) {
    postService.getFilteredByUserId($scope.bindModel, angular.toJson(filter));
};

这是获取此模型的服务器功能

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

这是模特:

public class TimesheetFilterModel
{
    public int      UserId { get; set; }
    public DateTime DateFrom { get; set; }
    public DateTime DateTo { get; set; }
    public int      TicketType { get; set; }
}

2 个答案:

答案 0 :(得分:2)

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不可为空。您需要使它们可为空并在Constructor上将它们设置为null。

答案 1 :(得分:1)

您可以将datetime属性设置为可空,以便在获取null值时它将处理null。

DateTime是c#中的值类型,因此无法直接在其中指定空值。

DateTime? nullableDate;
dateSample.Value = null;

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