【问题标题】:Date formatting in MVC viewMVC 视图中的日期格式
【发布时间】:2016-06-30 12:00:05
【问题描述】:

我在 mvc 模型中有以下实体:

[Display(Name = "Date Of Birth")]
public DateTime? DateOfBirth { get; set; }

我在视图中使用它:

<td title="@u.CreatedDate">
    @if (@u.DateOfBirth != null)
    {
        @u.DateOfBirth
    }
</td>

这是一段工作代码,但我想以 dd/mm/yyyy 格式显示此日期。

我尝试过这样的事情:

1. string.Format("dd/MM/yyyy", u.DateOfBirth);

2.  [Display(Name = "Date Of Birth")]
    [DisplayFormat (DataFormatString="dd/MM/yyyy")]
    public DateTime? DateOfBirth { get; set; }

但是对我来说没有什么好用的。请帮忙

【问题讨论】:

  • 如果您使用@Html.DisplayFor(m =&gt; m.DateOfBirth)[DisplayFormat (DataFormatString="dd/MM/yyyy")] 可以正常工作。或者使用@u.DateOfBirth.ToString("dd/MM/yyyy")
  • 谢谢@StephenMuecke。我已经尝试过了,但它也不起作用。它显示“ToString() 没有重载方法需要 1 个参数”的错误
  • 如果它可以为空,那么你需要使用@u.DateOfBirth.Value.ToString("dd/MM/yyyy")
  • 感谢@StephenMuecke,@u.DateOfBirth.Value.ToString("dd/MM/yyyy") - 为我工作。
  • 如果您将此作为答案,我可以投票并选择它作为正确答案

标签: asp.net-mvc-4 asp.net-mvc-views


【解决方案1】:

您可以使用的 3 个选项

@Html.DisplayFor(m => u.DateOfBirth) // assumes you have [DisplayFormat(DataFormatString="{0:dd/MM/yyyy}")]

@String.Format("{0:dd/MM/yyyy}", u.DateOfBirth)

@u.DateOfBirth.Value.ToString("dd/MM/yyyy")

在前两种情况下,您不需要@if (@u.DateOfBirth != null) 检查

【讨论】:

  • 这个答案是我找到 DataFormatString 的最佳答案,因为这样可以避免 null 问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
相关资源
最近更新 更多