更改 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 字段创建。
您可以在视图的 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) %>