为什么DisplayFormat DataFormatString不起作用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么DisplayFormat DataFormatString不起作用?相关的知识,希望对你有一定的参考价值。
我的视图模型中有一个属性如下:
[Editable(false)]
[Display(Name = "Date")]
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
public DateTime MovementDate { get; set; }
然而是加价
<td>
@html.DisplayFor(modelItem => item.MovementDate)
</td>
将日期值呈现为2013/05/15 12:00:00 AM
。
我究竟做错了什么?我的模特:
public class WithDateModel
{
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
public DateTime TheDate { get; set; }
public WithDateModel()
{
TheDate = DateTime.Now;
}
}
我的看法:
@model ParkPay.WebTests.Models.WithDateModel
@Html.DisplayFor(m => m.TheDate)
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
呈现的内容:
2013/05/25 02:23:37 AM
如果你设置ApplyFormatInEditMode
,为什么你使用[Editable(false)]
?所有ApplyFormatInEditMode
都会格式化日期,如果你把它放在一个文本框中或者用于编辑的东西,你可能不会因为前面提到的那样。
我能够使用以下内容正确显示日期:
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
public DateTime Date
{
get
{
return DateTime.Now;
}
set
{
Date = DateTime.Now;
}
}
并在视图中(带有结果输出):
@Html.DisplayFor(x => x.Date) // 2013/05/23
<br />
@Model.Date // 23/05/2013 09:57:56
<br />
@Html.DisplayFor(x => Model.Date) // 2013/05/23
希望这可以帮助。
如果你无法在模型上运行它,你可以在视图上尝试它。
@Html.TextBoxFor(m => m.ValidFrom, "{0:dd/MM/yyyy}", new {maxlength = 10})
由于您要排除获得仅日期的时间:在模型: -
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy/MM/dd}"]
public DateTime TheDate { get; set; }
在意见: -
@Html.DisplayFor(model=> model.TheDate)
@Html.JQueryUI().DatepickerFor(model => model.TheDate)
以下链接的教程可以帮助你。它对我有用。
http://ilyasmamunbd.blogspot.com/2014/02/jquery-ui-datepicker-popup-calendar.html
您必须将类型注释为Date
[DataType(DataType.Date)]
这项工作对我来说:
在模型中:
using System.ComponentModel.DataAnnotations;
namespace Athlete.Models
{
public class Foo
{
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime SignDate
{
get;
set;
}
}
}
在视图中:
<td style="text-align:left;">@Html.DisplayFor(modelItem => item.SignDate)</td>
在我的情况下,一个队友定义了一个全局显示模板(aka ~ViewsSharedDisplayTemplatesDateTime.cshtml
),我没有意识到我的模型属性优先于我的[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
。
解决方案是将我的格式字符串移动到新的共享模板,因此属性更改为:
// see ~ViewsSharedDisplayTemplatesDateMyFormat.cshtml for formatting
[UIHint("DateMyFormat")]
public DateTime MovementDate { get; set; }
您需要显示名称中的var名称: [显示(名称=“MovementDate”)] public DateTime MovementDate {get;组; }
[Editable(false)]
[Display(Name = "MovementDate")]
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
public DateTime MovementDate { get; set; }
以上是关于为什么DisplayFormat DataFormatString不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
添加nativescript-ui-dataform插件后,NativeScript tns构建失败
pandas常用的数据类型,(serises和dataform)
在 DataFormatString 之外自定义 DisplayFormat