格式化 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?