13

He estado implementando algunas funciones @helper en Razor basadas en Scott Gu's post, y las cosas van bastante bien.ASP.NET MVC - llamando a Razor @helper desde otro @helper

Lo que me preguntaba si es que es posible llamar a uno @helper desde otro. Por ejemplo, tengo el siguiente ayudante que muestra la fecha y hora de un DateTime?:

@helper DateTimeDisplay(DateTime? date) 
{ 
    if (date.HasValue) 
    { 
     @date.Value.ToShortDateString()<br /> 
     <text>at</text> @date.Value.ToShortTimeString() 
    } 
    else 
    { 
     <text>-</text> 
    } 
} 

Esto funciona bien, pero en algunas situaciones que tienen otros campos que no son anulable, así que traté de añadir esto para mantener las cosas secas :

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

Esto compila y funciona bien, pero cuando se hace sólo muestra como una cadena vacía para el no anulable DateTime. Aquí está el marcado que llama a las funciones @helper. Model.UpdateDate es un habitual DateTime y Model.LastRun es una DateTime?

... 
<tr> 
    <td>Last&nbsp;updated&nbsp;</td> 
    <td class="value-field">@Helpers.DateTimeDisplay(Model.UpdateDate)</td> 
</tr> 
<tr> 
    <td>Last&nbsp;run&nbsp;</td> 
    <td class="value-field">@Helpers.DateTimeDisplay(Model.LastRun)</td> 
</tr> 
... 

¿Hay una manera de hacer que una función @helper llamando desde otro?

+0

no entiende bien su punto ... ¿puede usted reformular su pregunta por favor? –

Respuesta

23

Debe escribir @DateTimeDisplay(...) para imprimir el valor de retorno a la página.

+4

Ha, por supuesto, no puedo creer que me haya perdido eso. ¡Gracias! – ataddeini

Cuestiones relacionadas