ASP.NET MVC - вызов Razor @helper из другого @helper

Я реализовал некоторые @helper функции в Razor на основе сообщения Скотта Гу , и все идет неплохо.

Что меня интересует, так это то, можно ли вызвать одного @helper из другого. Например, у меня есть следующий помощник, который отображает дату и время для DateTime? :

@helper DateTimeDisplay(DateTime? date)
{
    if (date.HasValue)
    {
        @date.Value.ToShortDateString()
at @date.Value.ToShortTimeString() } else { - } }

Это работает нормально, но в некоторых ситуациях у меня есть другие поля, которые не допускают значения NULL, поэтому я попытался добавить это в держать вещи DRY:

@helper DateTimeDisplay(DateTime date)
{
    DateTimeDisplay(new DateTime?(date));
}

Это компилируется и работает нормально, но при рендеринге он просто отображается как пустая строка для не допускающего значения NULL DateTime . Вот разметка, которая вызывает функции @helper . Model.UpdateDate - это обычный DateTime , а Model.LastRun - это DateTime?

...

    Last updated 
    @Helpers.DateTimeDisplay(Model.UpdateDate)


    Last run 
    @Helpers.DateTimeDisplay(Model.LastRun)

...

Есть ли способ визуализировать его @ вспомогательная функция , вызвав ее из другого?

13
задан ataddeini 19 May 2011 в 14:15
поделиться