“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
您可以在模型本身中提供格式,例如
[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)]时才对我有用
这会将输入呈现为文本而不是日期或日期时间,本机浏览器日期选择器不会出现,但您可以使用第三方日期选择器,例如引导日期选择器