Ответ 1
Вам нужно написать @DateTimeDisplay(...)
, чтобы напечатать возвращаемое значение на странице.
Я выполнял некоторые функции @helper
в Razor на основе пост Scott Gu, и все идет неплохо.
Что мне было интересно, так это если можно вызвать один @helper
из другого. Например, у меня есть следующий помощник, который отображает дату и время для DateTime?
:
@helper DateTimeDisplay(DateTime? date)
{
if (date.HasValue)
{
@date.Value.ToShortDateString()<br />
<text>at</text> @date.Value.ToShortTimeString()
}
else
{
<text>-</text>
}
}
Это отлично работает, но в некоторых ситуациях у меня есть другие поля, которые не являются нулевыми, поэтому я попытался добавить это, чтобы сохранить вещи DRY:
@helper DateTimeDisplay(DateTime date)
{
DateTimeDisplay(new DateTime?(date));
}
Это компилируется и работает нормально, но когда он отображает его, он просто отображается как пустая строка для не-nullable DateTime
. Здесь разметка, которая вызывает функции @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
, вызвав ее из другого?
Вам нужно написать @DateTimeDisplay(...)
, чтобы напечатать возвращаемое значение на странице.