“ASP 格式”不适用于标记帮助程序

本文关键字:帮助程序 适用于 不适用 ASP 格式 | 更新日期: 2023-09-27 18:36:39

我在 mvc 6 项目中使用带有标签助手元素的"asp 格式"标签时遇到了问题。

这个想法是这样格式化日期输入元素:

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

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

public DateTime StartDate {get; set; }

出于一个奇怪的原因,此元素永远不会格式化,并且始终按如下方式呈现:

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

因此,我创建了一个视图模型类,并定义了一个属性来保存整个人员模型。

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

在视图中使用此类,格式设置有效。

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

“ASP 格式”不适用于标记帮助程序

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

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

添加类型 = 日期,这将格式化日期

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

我不得不使用

[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" />

asp格式仅在我添加[DataType(DataType.Text)]时才对我有用

这会将输入呈现为文本而不是日期或日期时间,本机浏览器日期选择器不会出现,但您可以使用第三方日期选择器,例如引导日期选择器