【问题标题】:MVC View nullable Date field formattingMVC 查看可为空的日期字段格式
【发布时间】:2012-01-10 00:58:28
【问题描述】:

我正在尝试在视图中显示以下内容,但出现了问题:

    <td>
     @item.CreatedByDt.ToString("MM/dd/yyyy") 
    </td>  

关于如何处理视图中可为空的日期字段的任何想法。顺便说一句,我正在使用 Razor。

我收到以下错误:

方法 'ToString' 没有重载需要 1 个参数

【问题讨论】:

    标签: asp.net-mvc view razor


    【解决方案1】:

    如果DateTime? 是空值,它们会给出错误。

    此解决方案不会产生错误:

    @functions{
        string FormatNullableDate(DateTime? value) => value.HasValue ? value.Value.ToString("MM/dd/yyyy") : "-";
    }
    
    <td>
    @FormatNullableDateTime(item.CreatedByDt)
    </td>
    

    【讨论】:

      【解决方案2】:
      @(item.CreatedByDt.HasValue ? item.CreatedByDt.Value.ToString("MM/dd/yyyy") : "--/--/----")
      

      您可以将日期为空时的显示字符串替换为您想要的。

      【讨论】:

        【解决方案3】:

        如果你不知道它是否会为空......

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

        【讨论】:

        • 如果我在 webgrid 中这样使用,我得到这个错误 **Value cannot be null。参数名称:args **
        • 如果在具有 NULL 值的可空 DateTime 上使用这将给出错误
        【解决方案4】:
        @item.CreatedByDt.Value.ToString("MM/dd/yyyy")
        

        【讨论】:

        • 如果为null则通过异常
        【解决方案5】:
        @item.PostDatePublished.Value.ToString
        

        需要里面的值

        【讨论】:

        • 如果为null则通过异常
        猜你喜欢
        • 2015-04-16
        • 1970-01-01
        • 2016-03-01
        • 1970-01-01
        • 2021-11-25
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多