【问题标题】:How to format dates in MVC 5 Razor如何在 MVC 5 Razor 中格式化日期
【发布时间】:2017-01-03 22:40:20
【问题描述】:

我的 Razor 代码中有一个表格,它遍历模型中的所有项目并为每个项目创建一个表格行。我试图弄清楚如何将日期格式化为 MM/dd/yyyy 而不是默认的“MM/dd/yyyy HH:mm:ss”格式。

<table class="table-condensed">
    <thead>
        <tr>
            <th>Company</th>
            <th>Contract No</th>
            <th>Description</th>
            <th>Expires</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>@Html.ActionLink(@item.CompanyName, "ViewContract", new { contractID = @item.ID }) </td>
                <td width="200">@item.ContractNumber</td>
                <td>@item.Description</td>
                <td>@item.ExpireDate</td>
            </tr>
            }
    </tbody>    
</table>

我试过 @item.ExpireDate.ToString("MM/dd/yyyy") 但它抛出一个错误,说 .ToString 不接受参数。

【问题讨论】:

  • ExpireDate 是可以为空的 DateTime 吗?
  • 是的。此外,我正在使用 MVCPagedList NuGet 包,它要求您的模型作为 PagedList 传递,这就是为什么我无法使用 HTML 帮助器
  • 希望链接:stackoverflow.com/questions/4679352/…有帮助

标签: asp.net-mvc date razor asp.net-mvc-5


【解决方案1】:

如果您使用的是 c# 6 功能,则可以使用空条件。

@(item.ExpireDate?.ToString("MM/dd/yyyy"))

【讨论】:

    【解决方案2】:

    我正在使用 PagedList NuGet 包,它使 Html 助手调用有点不同。我可以通过在数据模型构造函数中指定日期格式,然后使用显示助手来格式化日期。

    在数据模型中:

    [DisplayFormat(DataFormatString = "{0: MM/dd/yyyy}")] 
    public Nullable<System.DateTime> ExpireDate { get; set; }
    

    在剃须刀里:

    <table class="table-condensed">
        <thead>
            <tr>
                <th>Company</th>
                <th>Contract No</th>
                <th>Description</th>
                <th>Expires</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model)
            {
                <tr>
                    <td>@Html.ActionLink(@item.CompanyName, "ViewContract", new { contractID = @item.ID }) </td>
                    <td width="200">@item.ContractNumber</td>
                    <td>@item.Description</td>
                    <td>@Html.DisplayFor(modelItem => item.ExpireDate)<td>
                </tr>
                }
        </tbody>     </table>
    

    【讨论】:

      【解决方案3】:

      你现在也可以使用

      @item.ExpireDate?.ToShortDateString() 将 DateTime 值转换为“M/d/yyyy”日期格式

      【讨论】:

      • - 错误:运算符 '?'不能应用于“日期时间”类型的操作数?
      • C# 6 功能? @cdonner
      猜你喜欢
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 2018-06-19
      • 2022-01-28
      • 1970-01-01
      相关资源
      最近更新 更多