2011-02-14 8 views
8

Vi la publicación de Scott Guthrie sobre los métodos de ayuda a través del his blog.Métodos de ayuda declarativa en Razor RTM

Específicamente esto:

veo el montón de la versión RC de MVC 3 publicaciones sobre la falta de métodos de ayuda ... Veo el apoyo sintáctico para él (@helper) consigue destacado, pero tengo esto en /Views/Helpers/SomeHelper.cshtml (definida como una vista parcial):

@helper SomeHelper(string text) 
{ 
    if (text != null) 
    { 
     <text> 
      @text 
     </text> 
    } 
    else 
    { 
     <text> 
      Unknown 
     </text> 
    } 
} 

I usarlo de esta manera:

<div> 
Helper with Text: 
@SomeHelper("This is not null text.") 
</div> 

Pero obtengo SomeHelper no está definido ... entonces, ¿dónde lo arruiné? ¿Hay algo que deba hacer para registrar estos puntos de vista como ayudantes?

Gracias.

Respuesta

12

He hecho esto creando una carpeta App_Code en mi proyecto, y luego creando un archivo Helpers.cshtml en esa carpeta.

Entonces, en un .cshtml vista, utilice:

@Helpers.SomeHelper("This is not null text.") 

Ésta es la única manera que he encontrado para crear métodos de ayuda declarativas compartidos a través de todo el proyecto web. Si hay otros, me gustaría saber de ellos.

+0

Correcto, esta es la única forma en que esto puede funcionar en MVC en este momento. En el futuro tendrá una mejor historia para los ayudantes globales. Simplemente no tuvimos el tiempo para hacer que esto funcione. – marcind

+0

¿Incluso con la plantilla de aplicación web? –

+0

@marcind ¿Qué pasa con ASP.NET MVC 4? ¿Habrá otras maneras de hacer ayuda global? – Syska

Cuestiones relacionadas