20

我想做类似的事情

model.PickupDate.ToString("d")

但是 MVC4 不是很喜欢。 PickupDate是一个DateTime字段,我想在视图中显示时去掉时间部分,同时保留new { id = "date1" }绑定TextBoxFor到 javasript datepicker 的代码。如何仅在这种情况下显示日期部分?

@Html.TextBoxFor(model => model.PickupDate, new { id = "date1" })
4

7 回答 7

30

我就是这样做的。希望能帮助到你

 @Html.TextBoxFor(m => m.MyDateTime, new { Value = Model.MyDateTime.ToString("MM-dd-yyyy"), id = "MySuperCoolId"});

或者在你的情况下

@Html.TextBoxFor(m => m.PickupDated, new { Value = Model.PickupDate.ToString("d"), id = "date1"});
于 2013-07-26T12:53:18.883 回答
28

这应该有效:

@Html.TextBoxFor(model => model.SomeDateTime, "{0:MM/dd/yyyy}", new { id = "yourID" })
于 2014-01-22T21:29:16.043 回答
4

在您定义模型的地方,您可以提供日期格式,在此示例中,我将 DD/MM/YYYY 作为我的格式,但您可以使用任何您需要的格式。

型号代码

public class MyModel
{
   [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
   public DateTime SomeDateTime {get;set;}
}

然后你的剃须刀

@Html.EditorFor(model => model.SomeDateTime, new { id = "date1" })
于 2013-07-25T06:56:41.500 回答
4

基于https://stackoverflow.com/a/13702321/787511,使用 JQueryUI datepicker 测试。

@Html.TextBoxFor(model => model.PickupDate, "{0:d}", new { id = "date1" })
于 2013-10-30T17:06:05.347 回答
0

如果你只在View上进行转换,你可以这样写

@Html.TextBoxFor(model => model.SomeDateTime, String.Format("{0:MM/dd/yyyy}"))
于 2013-07-25T07:42:44.147 回答
0
   @Html.TextBoxFor(model => model.Date, String.Format("{0:dddd, MMMM d, yyyy}",Model.Date),  new { @class = "form-control"})
于 2017-11-21T06:36:18.807 回答
0

展示将取决于文化。虽然在大多数情况下所有其他答案都是正确的,但它对我不起作用。如果附加了 jQuery datepicker,文化问题也会导致不同的问题。

如果您希望/通过以下方式强制格式转义:

@Html.TextBoxFor(model => model.PickupDate, "{0:MM\\/dd\\/yyyy}", new { id = "date1" })

如果没有为我逃脱它显示08-01-2010与预期08/01/2010

此外,如果没有转义 jQuery datepicker 将选择不同的 defaultDate,在我的例子中它是May 10, 2012.

于 2017-11-01T11:13:39.153 回答