"asp-format"未应用于标记助手

Bee*_*ice 18 c# asp.net asp.net-mvc datetime-format

我在mvc 6项目中使用带有taghelper元素的"asp-format"标签时遇到了问题.

我们的想法是以这种方式格式化日期输入元素:

<input asp-for="StartDate" asp-format="{0:dd/MM/yyyy}" />
Run Code Online (Sandbox Code Playgroud)

这个"StartDate"属性在我的模型中,以这种方式声明:

public DateTime StartDate {get; set; }
Run Code Online (Sandbox Code Playgroud)

出于一个奇怪的原因,这个元素永远不会被格式化,并且总是这样呈现:

---> 02/29/2016 00:00:00
Run Code Online (Sandbox Code Playgroud)

所以我创建了一个viewmodel类并定义了一个属性来保存整个人模型.

public class PersonViewModel 
{
    public Person Johndoe {get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在视图中使用此类,格式化工作.

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

---> 29/02/2016
Run Code Online (Sandbox Code Playgroud)

小智 8

您可以在模型本身中提供格式

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

  public DateTime StartDate {get; set; }
Run Code Online (Sandbox Code Playgroud)

在你看来简直就是这样

@Html.EditorFor(model=>model.StartTime)
Run Code Online (Sandbox Code Playgroud)

2)您也可以在不提供模型类的日期格式的情况下执行此操作

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

  • 我也不是在模型中定义显示格式的忠实粉丝.如果我想使用相同的模型并以两种不同的格式显示日期(即时间在一个地方而没有时间在另一个地方),该怎么办? (4认同)
  • 我实际上使用mvc 6和标签助手方法,所以我不能使用html助手. (2认同)