【问题标题】:mvc 5 EditorFor format not workingmvc 5 EditorFor格式不起作用
【发布时间】:2015-03-06 18:52:21
【问题描述】:

我已经广泛研究了这个问题,但仍然找不到答案。我有一个带有这个日期字段的模型:

[Display(Name = "Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}", NullDisplayText = "")]
[Required]
public Nullable<System.DateTime> ConsumptionDate;

我对这个 EditorFor 有意见:

@Html.EditorFor(model => model.ConsumptionDate)
@Html.ValidationMessageFor(model => model.ConsumptionDate, "*", new { @class = "text-danger" })

但是日期仍然没有被格式化。我尝试过使用和不使用“{0:d}”作为 EditorFor 中的格式,并且我尝试过在模型字段上使用和不使用 [DataType(DataType.Date)] 注释。任何想法我做错了什么?绑定工作正常,我也可以很好地保存数据 - 我只是无法正确格式化。

TIA -VG

【问题讨论】:

  • 试试这个格式,我用的是这个:[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
  • 我也尝试过“MM-dd-yyyy”格式,但无论我尝试使用哪种日期格式字符串,该格式都不会被应用。
  • 你刚才说的和我发的不一样,你应该把目前尝试过的所有格式都贴出来。
  • 我不想先显示年份,所以我不会使用您发布的格式。我只尝试了另一种格式。 “d”是我真正需要的,因为在格式化时会考虑到文化。
  • 因为您使用EditorFor()DateTime,所以呈现的输出应该是&lt;input type="date"&gt;,这将使浏览器 负责弄清楚如何显示。例如,Chrome 有一个日期编辑器控件。为了让输入将字符串识别为日期,您需要按照我的建议对其进行格式化。如果你想选择日期的显示方式,你应该使用TextBoxFor()而不是EditorFor()

标签: asp.net-mvc asp.net-mvc-5 editorfor displayformat


【解决方案1】:

您是否使用 System.DateTime 带或不带问号(表示编辑器可以接受可为空的日期时间?

@model System.DateTime?

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2018-03-11
    相关资源
    最近更新 更多