2011-10-12 3 views
1

J'ai créé une coutume EditorFor DateTime et a ajouté un nom de classe à la zone de texteMVC3 sur mesure EditorFor DateTime et DisplayFormat attribut

@model DateTime 
@Html.TextBoxFor(m => m, new { @class = "date-time-picker" }) 

Alors que je peux connecter jquery datepicker à ce côté client

$("input.date-time-picker").datetimepicker(); 

Le problème est que pour le

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:g}")] 

attribut de travail dont vous avez besoin pour utiliser le bui lt en EditorFor (ou d'extraire les métadonnées de modèle et faire la même chose vous-même), donc ce qui est la meilleure façon de passer outre la valeur par défaut EditorFor, ajoutez le nom de classe et d'appeler le construit en editorfor pour que je puisse utiliser le DisplayFormat attribut

+0

Essayez d'utiliser un DataAnnotation UIHint votre propriété. Peut-être que ça peut marcher. – tugberk

+0

Comment exactement? Je sais que vous pouvez l'utiliser pour spécifier quelle vue utiliser. Mais comment cela aide-t-il ici? – Anders

Répondre

1

(Question répondue par l'OP dans une édition de question. Converti en une réponse wiki communautaire. Voir Question with no answers, but issue solved in the comments (or extended in chat))

L'OP a écrit:

Je l'ai résolu en faisant cela, mais il se sent comme réinventer la roue

@model DateTime 
@Html.TextBox("", string.Format(ModelMetadata.FromLambdaExpression(x => x, ViewData).DisplayFormatString, Model), new { @class = "date-time-picker" }) 
Questions connexes