【问题标题】:Format Datetime to date in MVC3在 MVC3 中格式化日期时间到日期
【发布时间】:2011-09-18 02:11:55
【问题描述】:

下面是我的视图模型中的属性,我想在视图上只显示日期, 任何人都可以帮助我格式化这个。现在我看到 01/01/2010 12:00:00 AM

   public DateTime ModifiedDate
    {
        get
        {
            return Region.ModifiedDate;
        }
        set
        {
            Region.ModifiedDate = value;
        }
    }

 @Html.TextBoxFor(model => model.ModifiedDate)

【问题讨论】:

标签: asp.net-mvc-3 datetime


【解决方案1】:

型号

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyy}" )]
public DateTime RecipeDate{ get; set; }

编辑模板

@model DateTime 
@Html.TextBox("", string.Format(ViewData.TemplateInfo.FormattedModelValue.ToString(), Model), new { @class = "date" })

EditorFor 不允许自定义属性,您必须使用 TextBox 或 TextBoxFor

【讨论】:

    【解决方案2】:

    我创建了一个编辑器模板(位于我的解决方案的 Shared\EditorTemplates 文件夹中),如下所示:

    @model System.DateTime?
    @Html.TextBox("", Model.HasValue ? Model.Value.ToString("MM/dd/yyyy") : string.Empty, new { @class = "date"})
    

    然后当我想使用它时,

    @Html.EditorFor(model => model.RecipeDate, new { @class = "date" })
    @Html.ValidationMessageFor(model => model.RecipeDate)
    

    对我来说似乎工作得很好。

    【讨论】:

    • 你不需要使用@Html.EditorFor 代替@Html.TextBoxFor 吗?
    • @Sergio - 是的,没错。当我输入它时,我的大脑上有“TextBox”,因为这就是 OP 在问题中的内容。我编辑了我的答案,感谢您接受。
    • 它正在工作,但我想让这个编辑器字段只读...有什么办法...
    • 试过这个 Html.EditorFor(model => model.ModifiedDate, new { style = "width:120px", readonly = "readonly" }) 但还是不行...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2017-12-29
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    相关资源
    最近更新 更多