2011-11-09 11 views

Respuesta

33

Cuando se utiliza una plantilla de visualización o el editor, UIHint lo dirá qué plantilla utilizar:

[UIHint("SomeTemplate")] 
public class MyViewModel 
{ 
    public string SomeProperty { get; set; } 
} 

Si crea una plantilla de visualización llamada SomeTemplate.ascx (ya que son MVC2) en las Vistas/compartido/DisplayTemplates o Vistas/{}/Controlador DisplayTemplates entonces se usará esa plantilla cuando lo hace:

@Html.DisplayForModel() // if Model is MyViewModel 

o

@Html.DisplayFor(m => m.ModelProperty) // if ModelProperty is of type MyViewModel 

edición
Si desea especificar esto en un nivel de propiedad:

public class MyViewModel 
{ 
    [UIHint("Birthday")] 
    public DateTime DateOfBirth { get; set; } 
} 

Se puede crear una plantilla de visualización/editor de llamada cumpleaños en los DisplayTemplates o carpeta EditorTemplates en cualquiera/Vistas/o compartida/Vistas /{Controlador}. Luego, cuando lo hace:

@Html.DisplayFor(m => m.DateOfBirth) 

o

@Html.EditorFor(m => m.DateOfBirth) 

que utilizará la plantilla especificada en UIHint

+0

gracias por la respuesta Gran !! Pero cómo especificar en el nivel de propiedad ... necesito una representación más clara, por favor – user1030181

+1

Colóquelo, eso fue exactamente lo que pasé una hora buscando cómo hacerlo. ¿Por qué hacen que sea tan difícil encontrar esta propiedad? – neminem

+2

No se puede usar en una 'clase', solo en propiedades y campos. – Mrchief

15

UIHint sólo se puede utilizar en una propiedad no en una declaración de clase como estados Dismissile. Estoy usando MVC3 así que esto puede haber cambiado de MVC2.

"Atributo 'UIHint' no es válido en este tipo de declaración. Sólo es válido en la propiedad 'paso a paso, de campo' declaraciones"

Cuestiones relacionadas