【问题标题】:DisplayFormatAttribute not working显示格式属性不起作用
【发布时间】:2011-06-30 15:02:49
【问题描述】:

我正在使用带有 Razor 和 EntityFramework 的 MVC3。为了处理事件调度,我有一个使用 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>

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

【问题讨论】:

    标签: asp.net-mvc entity-framework razor dataformat


    【解决方案1】:

    DisplayFormat 属性与Html.DisplayFor() 方法一起使用,而不是与Html.TextBoxFor 一起使用。我建议使用自定义 EditorTemplate 来显示您的日期格式。或者使用 jQuery。

    【讨论】:

    • 我有一篇关于创建它们的博文:buildstarted.com/2010/09/10/…
    • 我偶然发现了这个博客,并长期考虑使用这种方法,但创建编辑器模板感到不舒服,因为我只有一周的 MVC 和 Razor 体验。你是对的 Html.DisplayFor() 工作。我最终将使用模板,但现在,我将尝试灵活并使用 jQuery。感谢您的回复和有用的博客文章!
    【解决方案2】:

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

    jquery datepicker

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

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

    【讨论】:

    • dateFormat 选项不会影响模型的初始值,因为视图是用于新建或编辑的。也感谢您发现 dateFormatting 错字。
    • 我也没有运气使用 FormatAttributes 切换到 @Html.EditorFor,但在我运行视图的实例中,似乎没有启动 datepicker。现在它是,它默认清除文本框,这意味着它需要像 BuildStarted 建议的那样在 jQuery 中设置。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-08
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多