格式化 DateTime 错误“方法 'ToString' 没有重载需要 1 个参数”

Posted

技术标签:

【中文标题】格式化 DateTime 错误“方法 \'ToString\' 没有重载需要 1 个参数”【英文标题】:formatting DateTime error "No overload for method 'ToString' takes 1 arguments"格式化 DateTime 错误“方法 'ToString' 没有重载需要 1 个参数” 【发布时间】:2013-10-17 02:13:51 【问题描述】:

在 MVC Razor 视图中,我尝试将 DateTime 字段格式化为仅显示时间。使用下面的代码我收到错误“方法 'ToString' 没有重载需要 1 个参数”

<td>@(html.DisplayFor(m=>row.LastUpdatedDate).ToString("HH:mm:ss"))</td>

请帮忙看看是什么导致了这个错误以及如何解决它?

感谢您的帮助。

【问题讨论】:

How do I format a DateTime to be displayed as simply the time of day in a Razor-generated view? 的可能重复项 【参考方案1】:

尝试在模型中的属性上使用System.ComponentModel.DataAnnotations.DisplayFormat 属性。

...
[DisplayFormat(DataFormatString = "0:HH:mm:ss")]
public DateTime LastUpdatedDateget; set;
...

【讨论】:

【参考方案2】:

DisplayExtensions.DisplayFor 返回 MvcHtmlString 没有 ToString 一个参数,从而导致您看到的错误。

如果您只需要显示日期时间值,您甚至可能不需要DisplayFor

<td>@row.LastUpdatedDate.ToString("HH:mm:ss")</td>

【讨论】:

感谢 Alexei Levenkov,非常感谢您的回复。你是对的,它没有 .ToString 方法。我在考虑 .ToString 无处不在。在我能够做到之前实际上无法理解@(Html.DisplayFor(m=>row.CurrencyFrom).ToString().ToLower()) @Toubi - 每个对象都有ToString()(无参数) - 所以你可以在任何对象上调用它(通常会给你不期望的结果,比如Array[]),但只有特定的类(如DateTime.TosString(string format))有更多版本的ToString 有更多参数。

以上是关于格式化 DateTime 错误“方法 'ToString' 没有重载需要 1 个参数”的主要内容,如果未能解决你的问题,请参考以下文章

.NET 4.5 DateTime 格式/转换错误与上索布文化

joda DateTime 格式导致 Spark RDD 函数中的空指针错误

我们如何在 Flutter/Dart 中将自定义 DateTime 格式化为 DateTime?

C#时间DateTime包含星期存入数据库错误

C#中将一个XML格式的字符串序列化成实体类 报DateTime类型错误 请高手指点一下

sqlite中的datetime格式