我一直在基于Scott Gu's post在Razor中实现一些@helper
函数,事情进展顺利。
我想知道的是,是否可以从另一个@helper
调用一个DateTime?
。例如,我有以下帮助器,显示@helper DateTimeDisplay(DateTime? date)
{
if (date.HasValue)
{
@date.Value.ToShortDateString()<br />
<text>at</text> @date.Value.ToShortTimeString()
}
else
{
<text>-</text>
}
}
的日期和时间:
@helper DateTimeDisplay(DateTime date)
{
DateTimeDisplay(new DateTime?(date));
}
这很好用,但在某些情况下我还有其他不可空的字段,所以我尝试添加它以保持干燥:
DateTime
这会编译并运行OK,但是当它呈现时它只显示为非可空@helper
的空字符串。这是调用Model.UpdateDate
函数的标记。 DateTime
是常规Model.LastRun
,DateTime?
是...
<tr>
<td>Last updated </td>
<td class="value-field">@Helpers.DateTimeDisplay(Model.UpdateDate)</td>
</tr>
<tr>
<td>Last run </td>
<td class="value-field">@Helpers.DateTimeDisplay(Model.LastRun)</td>
</tr>
...
@helper
有没有办法通过从另一个函数调用它来呈现一个{{1}}函数?
答案 0 :(得分:23)
您需要编写@DateTimeDisplay(...)
以将返回值打印到页面。