在Html.TextBoxFor上格式化日期 - 其他解决方案无效

时间:2010-10-07 22:59:40

标签: entity-framework asp.net-mvc-2

使用EF生成的类,这是我的元数据类:

    [DisplayName("Approved Date")]
    [DataType(DataType.DateTime)]
    [DisplayFormat(ApplyFormatInEditMode = true,
                            HtmlEncode = false,
                            NullDisplayText = "", 
                            DataFormatString = "{0:MM/dd/yyyy}")]
    public object ApprovedDate{ get; set; }

观点:

<%: Html.EditorFor(model => model.Standard)%>

编辑:

<%:Html.EditorFor(model => model.ApprovedDate)%>

DateTime.ascx:

<%string name = ViewData.TemplateInfo.HtmlFieldPrefix;%>
<%string id = name.Replace(".", "_");%>

<div class="clear">
    <div class="editor-label"><%:Html.LabelFor(model => model)%></div>
    <div class="editor-field">
        <%:Html.TextBoxFor(model => model)%>
        <%= Html.ValidationMessageFor(model => model)%>
    </div>
</div>

<script type="text/javascript">
    $(document).ready(function () {

        $("#<%=id%>").datepicker({
            showOn: 'both',
            dateFormat: 'm/d/yy',
            changeMonth: true,
            changeYear: true
        });
    });
</script>

似乎没什么用。我必须保持绑定,所以我不想做原始的HTML。

所有日期字段都以相同的格式输出,其中包括时间。

3/12/2009 12:00:00 AM

它需要的是

2009年3月12日

谢谢!

1 个答案:

答案 0 :(得分:3)

我最终使用<%= Html.TextBox(null, string.Format("{0:d}", Model))%>。似乎工作,并保留绑定。