2017-02-16 13 views
8

Kiedy używam następującego kodu w moim widoku edycji, nie pokazuje on daty z modelu.Pomocnik znacznika wprowadzania danych nie pokazuje daty z bazy danych

<input asp-for="OprettetDato" class="form-control"/> 

własnością modelu jest zadeklarowana następująco:

[DataType(DataType.Date)] 
[DisplayFormat(DataFormatString = "{0: dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
public DateTime OprettetDato { get; set; } 

i wartość jest pomijane w modelu

Picture of the model passed

Dlaczego nie jest to działa?

+0

Ponieważ niezadowolony z wyjaśnienia poniżej, chciałbym zapytać, jakie jest twoje pytanie: * dlaczego * lub * jak rozwiązać ten problem *? –

+0

Mój problem został rozwiązany przez usunięcie tagu DisplayFormat z modelu -i zrobiłem to, ponieważ w pierwszej kolejności dostałem potwierdzenie do tagu - w ten sposób datepicker HTML5 mógł poprawnie wyświetlić moją datę. – Tirdyr

Odpowiedz

7

Problemem jest to, że atrybut [DataType(DataType.Date)] na nieruchomości modelu sprawia, że ​​wejście tag pomocnik produkować type="date" atrybut HTML, który w HTML5 powoduje stałe, standardowego formatu - patrz informacja tutaj: Is there any way to change input type="date" format?

Aby wyświetlić pole z właściwą format, usuń atrybut[DataType(DataType.Date)] i wszystko będzie dobrze. Dodatkowo, w celu uzyskania ukośniki w formacie daty, trzeba uciec je tak:

[DisplayFormat(DataFormatString = @"{0:dd\/MM\/yyyy}", ApplyFormatInEditMode = true)] 
public DateTime OprettetDato { get; set; } 

Jeśli chcesz mieć niestandardowy format daty z datepicker, trzeba użyć trochę niestandardowe rozwiązanie JavaScript.

+0

Chciałem datepicker HTML5, i mam (teraz) czytałem link podałeś. Próbowałem usunąć [DisplayFormat] (i zachować typ danych). To faktycznie sprawia, że ​​próbnik działa. w moim lokalnym formacie czasowym, to właśnie chciałem – Tirdyr

+0

Nie powiedziałeś tego w swoim pytaniu. –

+0

Twoje prawo, ale nie zdawałem sobie sprawy, że to był problem ..: =) – Tirdyr