首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么DisplayFormat DataFormatString不工作?

为什么DisplayFormat DataFormatString不工作?
EN

Stack Overflow用户
提问于 2013-05-23 01:15:46
回答 6查看 78.2K关注 0票数 36

我的视图模型有一个属性,如下所示:

[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
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-05-23 17:05:00

既然已经设置了[Editable(false)],为什么还要使用ApplyFormatInEditModeApplyFormatInEditMode所要做的就是格式化日期,如果您将日期放在文本框或其他内容中进行编辑,由于上述原因,您可能不会这样做。

我能够使用以下命令正确显示日期:

[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

希望这能有所帮助。

票数 11
EN

Stack Overflow用户

发布于 2014-01-15 18:37:36

如果你不能让它在模型上工作,你可以在视图上尝试它。

@Html.TextBoxFor(m => m.ValidFrom, "{0:dd/MM/yyyy}", new {maxlength = 10})
票数 44
EN

Stack Overflow用户

发布于 2017-12-21 02:33:40

您必须将该类型注释为Date

[DataType(DataType.Date)]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16697872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档