超文本标记语言显示,原始不显示日期时间转换为本地
本文关键字:显示 转换 时间 日期 原始 超文本标记语言 | 更新日期: 2023-09-27 18:15:22
我有一个列表索引视图,其中一个模型值是UTC时间戳。我已经编写了检查它是否为空的代码,如果它不是输出到视图的时间戳转换为指定的时区。然而,尽管在调试器中逐步执行,并且调试器碰到Html.Raw.Display行和显示{9/29/2015 2:23:10 PM}
值的变量,td还是空的
<td>
@{
DateTime tmp;
//Check if not null, if not null convert to specified time zone
if (DateTime.TryParse(item.timestamp.ToString(), out tmp))
{
tmp = item.timestamp;
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(tmp, cstZone);
Html.Raw(cstTime.ToString() + " " + cstZone.StandardName); //Using Html.Display also fails
}
else
{
Html.DisplayFor(modelItem => item.timestamp);
}
}
</td>
我的代码在这里做错了什么?
HtmlHelper.Raw
不输出内容到页面,它只返回带有Raw内容的IHtmlString
。
让你感到困惑的是,大多数时候它与Razor表达式一起使用:
@Html.Raw(var)
这个表达式是什么使函数的返回输出到页面,但在您的示例中,您直接在代码块(@{...}
)中使用它。
只需在调用前添加@
,它就会工作:
@Html.Raw(cstTime.ToString() + " " + cstZone.StandardName);