Scott Guの投稿@helper
に基づいて、Razorにいくつかの機能を実装してきましたが、状況はかなり順調に進んでいます。
私が疑問に思っていたのは、お互いに電話をかけることができるかどうかということ@helper
です。たとえば、次のヘルパーがあり、:の日付と時刻を表示しますDateTime?
。
@helper DateTimeDisplay(DateTime? date)
{
if (date.HasValue)
{
@date.Value.ToShortDateString()<br />
<text>at</text> @date.Value.ToShortTimeString()
}
else
{
<text>-</text>
}
}
これは正常に機能しますが、状況によってはnull許容ではない他のフィールドがあるため、これを追加して、物事をドライに保つようにしました。
@helper DateTimeDisplay(DateTime date)
{
DateTimeDisplay(new DateTime?(date));
}
これはコンパイルして正常に実行されますが、レンダリングすると、null許容でない場合は空の文字列として表示されます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
別の関数から呼び出すことによって1つの関数をレンダリングする方法はありますか?