我希望我的下拉列表显示月份和年份,但我收到一个错误,说 2023-03 是无效的共振峰

I want my dropdown to display Month and Year but I get an error saying that 2023-03 is an invalid formant

提问人:Christopher Blick 提问时间:10/23/2023 最后编辑:Soner GönülChristopher Blick 更新时间:10/24/2023 访问量:57

问:

[DataMember]
[DisplayFormat(DataFormatString = "{0:MM,yyyy}")]
public virtual Month TaxYearStartMonth { get; set; }

上面是我的代码,我只想让我的下拉列表显示月份和年份而没有一天,但我不断收到错误。

C# .NET 日期时间 模型视图控制器 月日历

评论

1赞 Ralf 10/23/2023
显示的月份类型是什么?
0赞 Christopher Blick 10/24/2023
它是一个整数

答:

1赞 Ozan BAYRAM 10/23/2023 #1

乍一看很难理解。 但如果你看得更深,你期望的格式是“MM,yyyy”。 这意味着您需要将日期设置为“03,2023”,而不是“2023-03”。

但我相信你需要使用字符串而不是月份作为你的属性类型。因为 DateTime.Month 是整数。

[DataMember]
[DisplayFormat(DataFormatString = "{0:MM,yyyy}")]
public virtual string TaxYearStartMonth { get; set; }

除了此更改之外,您可能还需要其他属性来存储 Month 和 Year 值。还有一些逻辑将此值作为 TaxYearStartMonth 属性值返回。

评论

0赞 Christopher Blick 10/23/2023
当我查看数据库并看到 DateTime.Month 是 int 时,我知道出了什么问题,让我试着看看会发生什么。谢谢!
0赞 Magnus 10/23/2023
可能应该是 或 . --> 2023年03月DateTimeDateTimeOffsetnew DateTime(2023, 3, 3).ToString("MM,yyyy");
0赞 Christopher Blick 10/23/2023
更新 - 使其成为字符串,直接删除了下拉列表功能
0赞 Ozan BAYRAM 10/23/2023
可能需要一些额外的逻辑来调整代码以接受/处理这种格式。
0赞 Christopher Blick 10/23/2023
DateTimeOffset。新的 DateTime(2023, 3, 3)。ToString(“MM,yyyy”);^ 是在模型中完成的吗?