2011-08-16 15 views
5

Tengo algunos campos DateTime en mis clases de modelo MVC, algunos que requieren una fecha como entrada y otros que requieren un tiempo como entrada, pero ambos son propiedades DateTime.En MVC3, ¿es posible tener varias EditorTemplates para el mismo tipo?

¿Es posible tener un EditorTemplate para DateTime que de alguna manera produce un selector de fechas para las propiedades que están destinadas a ser fechas, y un selector de tiempo para las propiedades que están destinadas a ser tiempos?

Respuesta

9

Sí, aquí es una manera:

En ~/Views/Shared/EditorTemplates (o ~/Views/Shared/DisplayTemplates, crear archivos de plantilla que utilizan el motor de su vista favorita (ejemplo utiliza la maquinilla de afeitar/C#)

archivo Date.cshtml

replace this with a real date picker 

archivo Time.cshtml

replace this with a real time picker 

entonces, n su modelo:

[UIHint("Date")] 
public DateTime DateProperty { get; set; } 

[UIHint("Time")] 
public DateTime TimeProperty { get; set; } 

El nombre del atributo UIHint tiene que coincidir con el nombre de archivo de su plantilla, y UIHint está en System.ComponentModel.DataAnnotations, por lo que tendrá el uso de referencia de la declaración/unidad adecuada si no lo tiene ya .

Como alternativa, utilice un TimeSpan para representar sus tiempos - que es lo DateTime vuelve a sus propiedades TimeOfDay ...

+0

Gracias Jon, voy a dar que un intento. –

Cuestiones relacionadas