一尘不染

仅显示日期,不显示时间

c#

在MVC剃刀中,我将这样的当前日期放入数据库中。

model.Returndate = DateTime.Now.Date.ToShortDateString();

由于数据库字段是datetime数据类型,并且我正在将当前日期转换为字符串格式,因此无法正常工作。我正在使用字符串格式,因为我希望日期以mm / dd /
yyyy格式而不是mm / dd / yyyy hh:mm:ss时间格式。

编辑:

在控制器中,我有

var model = new ViewModel();
model.ReturnDate = DateTime.Now;            
return PartialView("PartialView", model);

在局部视图中,我有

@Html.EditorFor(model => model.Returndate)

这是将日期显示为“日期和时间”的地方……我只希望显示日期。不是时间。我希望此编辑能够更好地解释。


阅读 256

收藏
2020-05-19

共1个答案

一尘不染

如果列类型在SQL中为DateTime,则它将存储您是否传递一个时间。

最好正确保存日期:

model.ReturnDate = DateTime.Now;

然后在需要显示它时对其进行格式化:

@Html.Label(Model.ReturnDate.ToShortDateString())

或者,如果您使用的是EditorFor:

@Html.EditorFor(model => model.ReturnDate.ToShortDateString())

要么

@Html.EditorFor(model => model.ReturnDate.ToString("MM/dd/yyyy"))

要将属性添加到模型中,请添加以下代码:

public string ReturnDateForDisplay
{
    get
    {
       return this.ReturnDate.ToString("d");
    }
}

然后在您的PartialView中:

@Html.EditorFor(model => model.ReturnDateForDisplay)

编辑:

嗨,大家好,我想说一句“如果您使用的是EditorFor”,这意味着您需要为要表示的值类型使用一个EditorFor模板。

编辑器模板是在MVC中管理重复控件的一种很酷的方法:

http://coding-in.net/asp-net-mvc-3-how-to-use-
editortemplates/

您可以将它们用于诸如String之类的天真类型,如上文所述;但是它们特别适合让您为一组更复杂的数据类型模板化一组输入字段。

2020-05-19