【问题标题】:MVC DateFormat shortMVC 日期格式短
【发布时间】:2015-05-06 19:58:41
【问题描述】:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0: dd-mm-yyyy}")]
public DateTime DateProcessed { get; set; }

这是在我的Data Model 中,它提供的是01/01/2015

但我需要这种格式的January/01/2015 结果。

我尝试过使用ToShortDateString()。但我有

错误模板只能用于字段访问、属性访问、单维数组索引或单参数自定义索引器表达式。

尽可能多的。我希望它在模型中而不是使用视图。但如果帮不上忙。

什么都行。

【问题讨论】:

标签: c# asp.net-mvc


【解决方案1】:

试试这个;

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0: MMMM/dd/yyyy}")]
public DateTime DateProcessed { get; set; }

参考:here

但是,如果您坚持使用单一的日期格式,您也可以在不接触模型的情况下“破解”您的视图。

类似的东西;

<div>
  <dl class="dl-horizontal">
     <dt>@Html.DisplayNameFor(model => model.DateProcessed)</dt>
     <dd>@Html.DisplayFor(model => model.DateProcessed)</dd>
  </dl>
</div>

变成;

<div>
  <dl class="dl-horizontal">
     <dt>@Html.DisplayNameFor(model => model.DateProcessed)</dt>
     <dd>
         @{string formattedDate = Model.DateProcessed.ToString("MMMM/dd/yyyy");}
         @Html.DisplayFor(model => formattedDate)
     </dd>
  </dl>
</div>

这将以正确的格式显示日期。

【讨论】:

  • 哇,你更新了你的答案。我等了 10 分钟,所以我可以接受答案。所以我闭上了眼睛,然后是沃拉。 15 小时后醒来。
【解决方案2】:

试试这个:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0: MMMM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime DateProcessed { get; set; }

如果您不在模型类中使用日期格式,请尝试以下操作:

首先将您的日期属性设置如下

public Nullable<System.DateTime> DateProcessed { get; set; }

然后你的 View 像这样:

@Html.TextBoxFor(m => m.DateProcessed,"{0: MMMM/dd/yyyy}", placeholder = "MMMM/dd/yyyy" })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    相关资源
    最近更新 更多