2016-02-29 18 views
11

Ho riscontrato un problema con il tag "asp-format" con l'elemento taghelper nel mio progetto mvc 6."asp-format" non applicato ai tag helper

L'idea è quella di formattare un elemento data di ingresso in questo modo:

<input asp-for="StartDate" asp-format="{0:dd/MM/yyyy}" /> 

Questa struttura "StartDate" è nel mio modello, ha dichiarato in questo modo:

public DateTime StartDate {get; set; } 

Per una strana ragione, questo l'elemento non è mai formattato e viene presentato sempre in questo modo:

---> 02/29/2016 00:00:00 

Così ho creato una classe viewmodel e definito una proprietà per contenere l'intero modello di persona.

public class PersonViewModel 
{ 
    public Person Johndoe {get; set; } 
} 

E utilizzando questa classe nella vista, la formattazione funziona.

<input asp-for="Johndoe.StartDate" asp-format="{0:dd/MM/yyyy}" /> 

---> 29/02/2016 
+0

Hai mai avuto un resolut per questo usando i tag helper? Ho appena provato a farlo nel modo in cui hai all'inizio della domanda e ha funzionato per me. – akousmata

risposta

4

è possibile fornire il formato nel modello stesso come

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 

    public DateTime StartDate {get; set; } 

e nella vista semplicemente come

@Html.EditorFor(model=>model.StartTime) 

2) È anche possibile fare questo senza fornire il formato della data in classe del modello

@Html.TextBoxFor(m => m.StartDate, "{0:dd/MM/yyyy}") 
+2

In realtà sto usando mvc 6 con l'aiuto dei tag helper, quindi non posso usare helper html. – Beetlejuice

+1

Inoltre, non sono un grande fan della definizione del formato di visualizzazione nel modello. Che cosa succede se voglio utilizzare lo stesso modello e visualizzare la data in due formati diversi (vale a dire con il tempo in un posto e senza il tempo in un altro). – akousmata