【发布时间】:2016-10-12 12:25:08
【问题描述】:
当它显示在视图的数据网格中时,日期显示为10/20/2016 12:00:00 AM。我可以在控制器中使用 LINQ 删除时间吗?我尝试使用不同的技术将其转换为字符串,但没有成功。
型号
public class UserModel
{
public string userid { get; set; }
public string userdesc { get; set; }
public DateTime startdt { get; set; }
public DateTime enddt { get; set; }
public string status { get; set; }
}
控制器
var users = from u in _odb.USR_MSTR
select new UserModel
{
userid = u.USR_ID,
userdesc = u.USR_DESC,
startdt = u.STRT_DT, //Can I get the date only from this dates?
enddt = u.END_DT,
status = (u.INACTV_DT == null ? "Active" : "Inactive")
};
查看
<tbody id="dbBody">
@foreach (var item in Model)
{
<tr>
<td class="hidden">
@Html.DisplayFor(modelItem => item.startdate)
</td>
<td class="hidden">
@Html.DisplayFor(modelItem => item.enddate.ToShortDateString())
</td>
</tr>
}
</tbody>
【问题讨论】:
-
如果您不想显示时间,那么您需要更改显示时间的代码,而不是从数据库中获取时间的代码。
-
@BviLLe_Kid 这只会将时间部分截断为午夜,而生成的
DateTime仍会有时间部分。这是显示问题,而不是检索问题。 -
@HarambeAttackHelicopter:我希望你的数据库中没有存储字符串而不是日期时间,你能显示查询吗?
-
那是因为
UserModel.startdt是 DateTime 而不是字符串。在视图中进行格式化,而不是在模型中。 -
@TimSchmelter 很可能视图是为
DateTime而不是string设置的,并且OP 需要在视图中而不是控制器中进行格式化,或者可能使用副本中的属性。
标签: c# asp.net-mvc linq datetime model-view-controller