【问题标题】:Outputting a datetime as a unix timestamp using Razor使用 Razor 将日期时间输出为 unix 时间戳
【发布时间】:2014-03-19 15:59:20
【问题描述】:

我目前正在使用 Razor 输出一个日期时间变量,如下所示:

<td>@Html.Raw(Model.Records[i].Incident.DateRecieved)</td>

但是,为了便于排序,我想将其更改为时间戳,但无法找出最好的方法。我试过使用以下代码:

<td>@Model.Records[i].Incident.DateRecieved.ToString("yyyy MM dd")</td>

但 Visual Studio 表示 ToString 没有需要 1 次争论的重载。

请问有什么最好的方法吗?

谢谢

【问题讨论】:

  • DateRecieved 的类型是什么? (可能不是DateTime,可能是一些DB类型)
  • 嗨,它的数据类型是 ?DateTime

标签: c# asp.net-mvc datetime razor timestamp


【解决方案1】:

您的DataRecieved 似乎是Nullable&lt;DateTime&gt;。试试这个,先获取实际值,然后使用ToString 并传递日期时间格式:

<td>@Model.Records[i].Incident.DateRecieved.Value.ToString("yyyy MM dd")</td>

如果您的DateRecievednull,那么它可能会抛出异常。为了避免这种情况,您可以使用if 语句:

    <td> @if(Model.Records[i].Incident.DateRecieved != null)
         { <text>@Model.Records[i].Incident.DateRecieved.Value.ToString("yyyy MM dd") </text> }
         else { <text>"default value"</text> }
    </td>

【讨论】:

  • 非常感谢,不幸的是现在我收到一条错误消息“异常详细信息:System.InvalidOperationException:可空对象必须有一个值。”虽然
  • @Nick 如果里面没有值,你想显示什么?
  • 我猜只是一个空格,如果可能的话? :) 谢谢
  • 非常感谢!我已将 else 语句更改为 else { Html.Raw("default value"); } 因为它之前生成了一个错误,但它实际上并没有输出任何 HTML,即使这些是一个值。不幸的是,我也将第二行包裹在 Html.Raw 中,但没有任何乐趣
  • 看来我搞砸了剃刀语法:)) 再试一次text 标签。
猜你喜欢
  • 2020-10-19
  • 2015-02-09
  • 1970-01-01
  • 2015-09-26
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多