【问题标题】:Empty data converts to {1/1/0001 12:00:00 AM} [duplicate]空数据转换为 {1/1/0001 12:00:00 AM} [重复]
【发布时间】:2023-03-05 18:20:03
【问题描述】:

我有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; }
}

【问题讨论】:

  • 你应该使用nullable&lt;DateTime - public DateTime?日期从 { 得到;放; }。你可以检查这个SO question
  • 是的,当然。我的小姐...谢谢!)

标签: json angularjs asp.net-mvc


【解决方案1】:
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 不可为空。您需要使它们可以为空,并在构造函数上将它们设置为空。

【讨论】:

  • 构造函数中不需要设置null(默认为null
【解决方案2】:

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

DateTime 是 c# 中的值类型,因此无法直接在其中分配 null 值。

DateTime? nullableDate;
dateSample.Value = null;

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

【讨论】:

  • 构造函数中不需要设置null(默认为null)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
相关资源
最近更新 更多