问题描述
我有一个ASP.NET MVC应用程序,在其中的表中有一列,该列显示MysqL数据库中的DateTime值。该列按字符串值而不是DateTime
值排序。我需要将其显示为2020年8月14日,星期五,05:13 PM。
我可以使用
显示它[displayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:f}")]
我需要它按日期/时间排序。这是我的代码。
DataView:
[displayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:f}")]
public System.DateTime JobDateTime { get; set; }
控制器:
public ActionResult Index()
{
return View(db.jobs.OrderByDescending(x=>x.JobDateTime).ToList());
}
索引视图:
@Html.displayFor(modelItem => item.JobDateTime)`
我不知道如何对它进行排序并使它以长日期格式显示。我只能选一个。
解决方法
在排序之前会应用/etc/services
之类的声音。在这种情况下,您可能希望将其从属性定义中删除,并放入您的 Linq 查询中:
DisplayFormat
或者在Razor中进行最适合您的转换。
, ->count
属性将位于ViewModel中(最有可能)。
让我们将其称为MassDateTime
或调整名称,无论您使用什么名称。
然后,字段JobViewModel
的类型应为MassDateTime
,而不是string
才能以字符串格式显示在视图上。
DateTime
无需在属性上提及属性。
现在public class JobViewModel
{
public string MassDateTime { get; set; }
}
方法如下:
Index