更改 MVC 中日期时间的显示

本文关键字:显示 时间 日期 MVC 更改 | 更新日期: 2023-09-27 17:56:45

<%= Html.TextBoxFor(m => m.Trx.TradeDate, new { @class = "economicTextBox", propertyName = "Trx.TradeDate", dontRegisterNewIndication = true })%>

由于这是一个TextBoxFor,我不能只是改变它的显示方式(我不认为?),因为我必须具有绑定到的特定属性值。

不过,这显示了完整的DateTime - 5/18/2011 10:21:22 AM

如何让它只显示5/18/2011部分?

我应该通过Javascript来做吗?此字段也作为 JQuery DatePicker 字段创建。

更改 MVC 中日期时间的显示

您可以在视图的 EditorTemplates 文件夹中或在/Views/Shared/EditorTemplates 中为 DateTime 定义 EditorTemplate。

然后打电话给<%= Html.EditorFor(m => m.DateTimeProp) %>.

''

视图''共享''编辑器模板''日期时间.ascx:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime?>" %>
<%= Html.TextBox(ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty), Model.HasValue ? Model.Value.ToString("dd-MM-yyyy") : string.Empty) %>

交互:

您还可以添加自己的 HtmlHelper 扩展,例如 DateTimeTextBoxFor 。不幸的是,____For默认扩展使用的模板有一个相当静态的模板。

另一种选择:

您可以使用数据属性来控制数据类型和格式,但是,我认为您仍然需要使用EditorFor来使其工作(尽管它不需要单独的ASCX文件)。

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
public DateTime DateTimeProp { get; set; }
<%= Html.EditorFor(m => m.DateTimeProp) %>