gpt4 book ai didi

asp.net - 如何在 ASP.NET MVC 3 中以特定格式呈现 DateTime?

转载 作者:行者123 更新时间:2023-12-03 04:37:03 25 4
gpt4 key购买 nike

如果我的模型类中有一个 DateTime 类型的属性,如何以特定格式呈现它 - 例如以 ToLongDateString() 返回的格式?

我已经尝试过了...

@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())

...这会引发异常,因为表达式必须指向属性或字段。还有这个...

@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}

...不会引发异常,但渲染的输出为空(尽管 val 包含预期值,正如我在调试器中看到的那样)。

感谢您提前提供提示!

编辑

ToLongDateString 只是一个示例。我实际上想使用的不是 ToLongDateString 而是 DateTimeDateTime? 的自定义扩展方法:

public static string FormatDateTimeHideMidNight(this DateTime dateTime)
{
if (dateTime.TimeOfDay == TimeSpan.Zero)
return dateTime.ToString("d");
else
return dateTime.ToString("g");
}

public static string FormatDateTimeHideMidNight(this DateTime? dateTime)
{
if (dateTime.HasValue)
return dateTime.Value.FormatDateTimeHideMidNight();
else
return "";
}

因此,我认为我无法在 ViewModel 属性上使用 DisplayFormat 属性和 DataFormatString 参数。

最佳答案

您可以使用[DisplayFormat]来装饰您的 View 模型属性。属性:

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

在您看来:

@Html.EditorFor(x => x.MyDate)

或者,为了显示值,

@Html.DisplayFor(x => x.MyDate)

另一种可能性(我不推荐)是使用弱类型助手:

@Html.TextBox("MyDate", Model.MyDate.ToLongDateString())

关于asp.net - 如何在 ASP.NET MVC 3 中以特定格式呈现 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001654/

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