在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)
这就是它将日期显示为日期和时间的地方...我只想显示日期。现在不是时候。我希望这个编辑能更好地解释。
发布于 2011-08-19 16:17:31
如果列类型在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模板,用于你试图表示的值的类型。
编辑器模板是在MVC中管理重复控件的一种很酷的方式:
http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/
您可以像我上面所做的那样,将它们用于像String这样的简单类型;但是,它们特别适合让您为更复杂的数据类型创建一组输入字段的模板。
发布于 2012-10-31 08:32:23
我不得不自己处理这个场景--找到一个非常简单的方法,简单地在模型中注释你的属性,如下所示:
[DataType(DataType.Date)]
public DateTime? SomeDateProperty { get; set; }
它也会在日期选择器中隐藏时间按钮。
如果这个回答有点晚了,很抱歉;)
发布于 2012-10-25 08:10:19
如果您想要在TextBox中显示,这是可行的:
@Html.TextBoxFor(m => m.Employee.DOB, "{0:dd-MM-yyyy}")
https://stackoverflow.com/questions/7124434
复制相似问题