带有日期格式的@htmlTextboxFor?

时间:2012-06-04 06:03:09

标签: asp.net-mvc asp.net-mvc-3

我有一个@ Html.TextboxFor并且它连接到datepicker类,它还显示数据库的日期。如何以错误的格式显示日期。当数据库显示日期时,这是日期格式错误的唯一时间。

@Html.TextBoxFor(model => model.AdvertiserSignDate, new { id = "txtAdvDate", @readonly = "true", @class = "DatePicker" })

下面的代码以正确的格式显示日期,但只显示在文本框下方的一行。

@(Model == null ? string.Empty : String.Format("{0:dd MMM yyyy}", Model.AdvertiserSignDate))  

我想将上面一行的格式添加到第一行,以便我的文本框以正确的格式显示日期,并具有日期选择器的功能。

如何合并这两行代码?

3 个答案:

答案 0 :(得分:2)

尝试这可能有帮助

[DisplayName("Advertiser Sign Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime AdvertiserSignDate { get; set; }

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

答案 1 :(得分:2)

试试这个

@Html.TextBoxFor(model => model.AdvertiserSignDate, new { id = "txtAdvDate", @readonly = "true", @class = "DatePicker", @Value = (Model == null ? string.Empty : Model.AdvertiserSignDate.ToString("dd MMM yyyy")) })

修改

如果AdvertiserSignDate可以为空,则DateTime执行此操作

@Html.TextBoxFor(model => model.AdvertiserSignDate, new { id = "txtAdvDate", @readonly = "true", @class = "DatePicker", @Value = (Model == null || Model.AdvertiserSignDate == null? string.Empty : Convert.ToDateTime(Model.AdvertiserSignDate).ToString("dd MMM yyyy")) })

答案 2 :(得分:1)

这很有效。

@Html.TextBox("AdvertiserSignDate", String.Format("{0:dd MMM yyyy}", Model.AdvertiserSignDate), new { id = "txtAdvDate", @readonly = "true", @class = "DatePicker" })