“asp-format”未应用于标记帮助程序

41ik7eoe  于 2023-02-20  发布在  .NET
关注(0)|答案(4)|浏览(128)

在我的mvc 6项目中,我在使用“asp-format”标签和taghelper元素时遇到了一个问题。
其思想是以如下方式格式化日期输入元素:

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

这个“StartDate”属性在我的模型中,声明方式如下:

public DateTime StartDate {get; set; }

出于一个奇怪的原因,这个元素从来没有格式化,并且总是这样显示:

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

所以我创建了一个ViewModel类并定义了一个属性来保存整个Person模型。

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

在视图中使用这个类,格式就可以正常工作。

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

---> 29/02/2016
7d7tgy0s

7d7tgy0s1#

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

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

kqqjbcuj2#

添加类型=将格式化日期的日期

<input asp-for="StartDate" type="date" class="form-control" />
0lvr5msh

0lvr5msh3#

我不得不用

[DataType(DataType.Date)]

以及

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

在我的视图模型中。

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

我的观点如下:

From: <input asp-for="From" />
hpcdzsge

hpcdzsge4#

asp-format仅在我添加[DataType(DataType.Text)]时才起作用
这将停止浏览器日期时间选取器的工作,但您可以通过任何第三方日期选取器来修复,例如bootstrap-datepicker

相关问题