gpt4 book ai didi

asp.net-mvc-3 - ASP.Net MVC Razor 从 DateTime 属性中删除时间

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

我正在使用 Razor View 开发 ASP.Net MVC 3 Web 应用程序。我有以下 ViewModel,它被传递到我的 Razor View 并迭代以显示记录列表。

View 模型

public class ViewModelLocumEmpList
{
public IList<FormEmployment> LocumEmploymentList {get; set;}
}

查看
<table>
<tr>
<th>Employer</th>
<th>Date</th>
</tr>
@foreach (var item in Model.LocumEmploymentList) {
<tr>
<td>@item.employerName</td>
<td>@item.startDate</td>
</tr>
}
</table>

我的问题是这条线
@Html.DisplayFor(modelItem => item.startDate)

返回这样的日期 20/06/2012 00:00:00 ,我希望它删除时间并只显示日期,即 20/06/2012 .

我试过添加
@Html.DisplayFor(modelItem => item.startDate.Value.ToShortDateString())


DisplayFor(modelItem => item.startDate.HasValue ? item.startDate.Value.ToShortDateString(): "")

但是,它们都在运行时返回以下错误消息
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

我在这里查看了 Darin Dimitrov 的回答 Converting DateTime format using razor

但是,我无权访问我的 ViewModel 中的 startDate 属性,我的 ViewModel 返回您可以在上面看到的 FormEmployment 对象的 IList。

如果有人对如何从日期时间属性中删除时间有任何想法,那么我将不胜感激。

谢谢。

此外,我的 startDate 属性为 Nullable。

更新

根据 PinnyM 的回答,我添加了一个部分类(见下文)以将 [DisplayFormat] 属性放在 startDate 属性上。
public partial class FormEmployment
{
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public Nullable<System.DateTime> startDate { get; set; }
}

但是,我的 Razor View 仍然显示 20/06/2012 00:00:00 使用以下代码
@Html.DisplayFor(modelItem => item.startDate)

有任何想法吗?

谢谢。

最佳答案

您可以使用 @item.startDate.Value.ToShortDateString() (为空值添加正确的验证)

关于asp.net-mvc-3 - ASP.Net MVC Razor 从 DateTime 属性中删除时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122171/

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