【问题标题】:MVC3 @HTMLEditFor with DatePicker How to format with ShortDateMVC3 @HTMLEditFor 与 DatePicker 如何使用 ShortDate 格式化
【发布时间】:2011-12-15 02:03:06
【问题描述】:

我认为有以下 CSHtml 我的模型中也有以下代码

            <td class="editor-field">
            @Html.EditorFor(model => model.Required_From)
            @Html.ValidationMessageFor(model => model.Required_From)
        </td>
   <script type="text/javascript">
       $(function () {
               //debugger
           $("#Required_From").datepicker({ dateFormat: "mm/dd/yy", changeYear: true,      changeMonth: true });
            });
            $(function () {
               //debugger
                $("#Required_To").datepicker({ dateFormat: "mm/dd/yy", changeYear: true, changeMonth: true });
            });
    </script>

在我的模型中,我有以下代码:

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Required_To", DbType="DateTime NOT NULL")]
    public System.DateTime Required_To
    {
        get
        {
            return this._Required_To;
        }
        set
        {
            if ((this._Required_To != value))
            {
                this._Required_To = value;
            }
        }
    }

我需要能够显示短日期格式,但是当我这样做时,我收到以下错误: “模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。” 有没有办法以短日期格式使用模型和日期选择器? TIA 布鲁斯

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

    我建议您始终在您的视图中使用视图模型,并且永远不要将您的域模型传递给它们。因此,在您的视图模型中,您可以使用 [DisplayFormat] 属性来装饰属性,如下所示:

    public class MyViewModel
    {
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
        public DateTime RequiredFrom { get; set; }
    }
    

    然后因为您的视图将在您编写时被强类型化到视图模型:

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

    你会得到想要的格式。

    这就是说,如果您想违背良好做法而不使用视图模型,您可以随时尝试:

    @Html.TextBox("Required_From", Model.Required_From.ToShortDateString())
    

    【讨论】:

    • 感谢您的帮助,我正在使用强类型视图。 DisplayFormat 无需右键单击并应用 using System.ComponentModel 即可工作,但有一点小问题,这正是我所寻找的。​​span>
    猜你喜欢
    • 2011-04-15
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2015-08-10
    • 2016-05-10
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多