2016-02-29 2 views
11

У меня возникла проблема с использованием тега asp-format с элементом taghelper в моем проекте mvc 6.«asp-format» не применяется к помощникам тегов

Идея заключается в том, чтобы отформатировать дату элемента ввода таким образом:

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

Это свойство «StartDate» в моей модели, заявил так:

public DateTime StartDate {get; set; } 

Для странной причине, это элемент никогда не отформатирован и представлен всегда так:

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

Таким образом, я создал класс viewmodel и определил свойство удерживать модель всего человека.

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

И используя этот класс в представлении, форматирование работает.

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

---> 29/02/2016 
+0

Вы когда-нибудь получали разрешение ион для этого с помощью помощников тегов? Я просто пробовал делать это так, как у вас в начале вопроса, и это сработало для меня. – akousmata

ответ

4

Вы можете предоставить формат в самой модели, как

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

    public DateTime StartDate {get; set; } 

и на ваш взгляд, просто как

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

2) Вы также можете сделать это без предоставления формата даты в классе модели

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

Я фактически использую mvc 6 с помощью помощников тегов, поэтому я не могу использовать html-помощники. – Beetlejuice

+1

Я также не большой поклонник определения формата отображения в модели. Что делать, если я хочу использовать одну и ту же модель и отображать дату в двух разных форматах (т. Е. Со временем в одном месте и без времени в другом). – akousmata