【问题标题】:ASP.NET MVC ToString error when converting a DateTime to a month number将 DateTime 转换为月份数时出现 ASP.NET MVC ToString 错误
【发布时间】:2019-05-22 15:49:00
【问题描述】:

我对收到的错误感到困惑。 我正在尝试返回月份编号等于 i 的记录,但我收到以下错误。

    No overload for method 'ToString' takes 1 arguments 

还有其他方法可以从此表中返回月份数

 var ColourDates = Model.Color.Any(e => e.StartDate.ToString("MM") == i);

【问题讨论】:

  • StartDate的类型是什么?
  • 这是一个可以为空的日期时间DateTime?
  • 如果它可以为空,您可能应该使用:e.StartDate.HasValue ? e.StartDate.Value.ToString("MM") : "",但我假设istring。否则,您应该只使用 Month 属性。
  • 如文档所述,Nullable 没有采用参数的 ToString 方法的重载。您可以引用Value 属性,该属性将返回底层DateTime,但您需要处理nulls。
  • 你不需要转换它。有一个 Month 属性。只需使用StartDate.Value.Month

标签: c# asp.net-mvc


【解决方案1】:

当使用Nullable 类型时,您需要在使用前获取变量的值。你需要var ColourDates = Model.Color.Any(e => e.StartDate.Value.ToString("MM") == i);

注意:这不处理空值。如果e.StartDate.Value 为空,您将收到异常。我强烈建议在使用前使用e.StartDate.HasValue 进行空值检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2017-11-23
    • 2018-10-15
    • 2016-12-09
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    相关资源
    最近更新 更多