Model.AuditDate) 我尝试了多种不-6ren">
gpt4 book ai didi

asp.net - @Html.DisplayFor - 日期格式 ("mm/dd/yyyy")

转载 作者:行者123 更新时间:2023-12-03 05:21:22 36 4
gpt4 key购买 nike

我有以下 razor 代码,我希望其具有 mm/dd/yyyy 日期格式:

Audit Date: @Html.DisplayFor(Model => Model.AuditDate)

我尝试了多种不同的方法,但这些方法都不适合我的情况

我的 AuditDate 是 DateTime? 类型

我尝试过类似的操作并收到此错误:

@Html.DisplayFor(Model => Model.AuditDate.Value.ToShortDateString())

其他信息:模板只能与字段访问、属性访问、一维数组索引或单参数自定义索引器表达式一起使用。

尝试过这个:

@Html.DisplayFor(Model => Model.AuditDate.ToString("mm/dd/yyyy"))

“ToString”方法没有重载,需要 1 个参数

最佳答案

如果您使用 DisplayFor,则必须通过 DisplayFormat 属性定义格式或使用自定义显示模板。 (预设 DisplayFormatString 的完整列表可以在 here 中找到。)

[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime? AuditDate { get; set; }

或者创建 View Views\Shared\DisplayTemplates\DateTime.cshtml:

@model DateTime?
@if (Model.HasValue)
{
@Model.Value.ToString("MM/dd/yyyy")
}

这将适用于所有 DateTime,甚至是您对时间进行编码的日期时间。如果您希望它仅应用于仅日期属性,请在属性上使用 Views\Shared\DisplayTemplates\Date.cshtmlDataType 属性:

[DataType(DataType.Date)]
public DateTime? AuditDate { get; set; }

最后的选择是不使用 DisplayFor 而是直接渲染属性:

@if (Model.AuditDate.HasValue)
{
@Model.AuditDate.Value.ToString("MM/dd/yyyy")
}

关于asp.net - @Html.DisplayFor - 日期格式 ("mm/dd/yyyy"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28114874/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com