"asp-format" not applied to tag helpers

10,185

Solution 1

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}")

Solution 2

Add type = date which will format the date

<input asp-for="StartDate" type="date" class="form-control" />
Share:
10,185

Related videos on Youtube

Beetlejuice
Author by

Beetlejuice

Work at Benner Software and develop https://clinicone.com.br web site.

Updated on September 15, 2022

Comments

  • Beetlejuice
    Beetlejuice over 1 year

    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
    
  • Beetlejuice
    Beetlejuice about 8 years
    I'm actually using mvc 6 with tag helpers approach, so I cant use html helpers.
  • akousmata
    akousmata over 7 years
    I'm also not a big fan of defining the display format in the model. What if I want to use the same model and display the date in two different formats (i.e. with the time in one place and without the time in another).
  • nurchi
    nurchi over 5 years
    It seems that type="date" (asp-format has no effect) fixes the problem in this case, but what about in general?