"asp-format" not applied to tag helpers

Beetlejuice picture Beetlejuice · Feb 29, 2016 · Viewed 8.2k times · Source

I'm facing a problem using "asp-format" tag with taghelper element in my mvc 6 project.

The idea is to format a date input element this way:

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

This "StartDate" property is in my model, declared this way:

public DateTime StartDate {get; set; }

For a strange reason, this element is never formatted, and is presented always like this:

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

So I created a viewmodel class and defined a property to hold the entire person model.

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

And using this class in the view, the formatting works.

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

---> 29/02/2016

Answer

REDEVI_ picture REDEVI_ · Feb 29, 2016

You can provide the format in model itself like

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

  public DateTime StartDate {get; set; }

and in your view simply like

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

2) You can also do this without providing date format in model class

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