1

我将 MVC3 与 Razor 和 EntityFramework 一起使用。为了处理事件调度,我有一个使用 jquery datepicker 和 timepicker 的 StartDate、StartTime、EndDate、EndTime。我试图在我的 ViewModel 中使用 DisplayFormatAttribute,但文本框一直显示整个 DateTime 字符串。

在我的视图模型中,我具有以下属性:

    [DisplayFormatAttribute(DataFormatString = "{0:mm/dd/yyyy}")]
    public DateTime StartDate   { get; set; }

    [DisplayFormatAttribute(DataFormatString = "{0:h:mm tt}")]
    public DateTime StartTime   { get; set; }

我的观点是这样的:

    <div id="event-datetime-range" style="display:inline">
        <span id="event-startdatetime">
            @Html.TextBoxFor(model => model.StartDate, new { placeholder = "Start Date", id = "event-start-date", @class = "event-datepicker" });

            <span class="event-timerange">at</span>
            @Html.TextBoxFor(model => model.StartTime, new { placeholder = "Time", id = "event-start-time", @class = "event-timepicker event-timerange" })
        </span>

谁能告诉我我做错了什么?提前致谢!

4

3 回答 3

3

the DisplayFormat attribute is for use with the Html.DisplayFor() method and not for use with Html.TextBoxFor. I would recommend using a custom EditorTemplate to display your date format. Or use jQuery.

于 2011-06-30T16:09:11.283 回答
1

如果您使用的是 JQuery 日期选择器dateFormat,请在创建控件时使用该选项。

jquery 日期选择器

同样在日期/时间格式中,“mm”是分钟,而“MM”是月。

您可能还想尝试@Html.EditorFor()而不是@Html.TextBoxFor()

于 2011-06-30T15:16:59.657 回答
0

尝试使用[DisplayFormat(DisplayFormatString={"0:d})].

于 2011-06-30T15:18:17.643 回答