【问题标题】:Display only Date in @Html.DisplayFor() in MVC在 MVC 中的 @Html.DisplayFor() 中仅显示日期
【发布时间】:2014-12-15 08:33:55
【问题描述】:

我在 MVC5 和 EntityFramework 中工作,用于将数据显示到视图中。

现在在我看来数据格式是:- 10/22/2014 12:00:00 AM 但我只想要日期:- 22/10/2014 这种格式

我尝试了这段代码,但它不起作用

 @if (item.chekin_on_after != null)
                    { @Html.DisplayFor(modelItem => item.chekin_on_after, "ShortDateTime")}

我也关注 stackoverflow 中的一些链接,但没有帮助 Date Format using Html.DisplayFor() in MVC5Display only date and no time

【问题讨论】:

  • 您可以将[DisplayFormat] 属性添加到您的属性或创建自定义DisplatTemplate 来格式化日期
  • 我的模型类由数据库生成,Entity Framework,如果将来我要更新我的DataModel,它就会丢失。
  • 这就是为什么使用视图模型来表示您想要显示的数据的最佳实践

标签: entity-framework asp.net-mvc-5


【解决方案1】:

我没有使用@html.DisplayFor()。我使用的是这个

@Convert.ToString(string.Format("{0:dd/MM/yyyy}", item.chekin_on_after))

而且效果很好。

【讨论】:

    【解决方案2】:

    尝试在您的模型类中使用以下属性。

    [DisplayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:MM/dd/yyyy}")]
    public DateTime chekin_on_after { get; set; }
    

    希望对你有帮助..

    【讨论】:

      【解决方案3】:

      在将数据填充到模型之前,您可以在控制器中使用此功能:

      public static System.DateTime ParseDate(string value, string style)
      {
          DateTime blankDate = default(DateTime);
          if ((value != null & value.Length > 0)) {
              string formattedDate = Strings.Format(Convert.ToDateTime(value), style);
              return formattedDate;
          } else {
              return blankDate;
          }
      }
      

      你的价值在哪里:10/22/2014 12:00:00 AM,风格是:"MM/dd/yyyy" 或者你想要的东西

      【讨论】:

      • 我的模型和视图是由实体框架生成的,它返回一个 LIST 所以我把这段代码放在哪里。我对如何使用这段代码有点困惑。
      猜你喜欢
      • 1970-01-01
      • 2019-01-06
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多