在HtmlEditor帮助器标记中从数据库获取日期

时间:2018-03-13 12:59:33

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

我正在使用Entity Framework。我在数据库中存储了一条记录。 当我编辑记录时,我看不到日期,而是显示日期选择器日历,默认输入为" mm / dd / yyyy"

以下是View in View文件。

@Html.EditorFor(model => model.starting_date, new { htmlAttributes = new { @class = "form-control", Type = "date" } })

模特课程:

public partial class ProjectStatus
{
    public int project_status_id { get; set; }

    public Nullable<System.DateTime> starting_date { get; set; }

}

1 个答案:

答案 0 :(得分:0)

您正在获取默认浏览器数据选择器,因为您已添加

键入=&#34;日期&#34;在你的HtmlEditorFor

public partial class ProjectStatus
{
    public int project_status_id { get; set; }

    [DisplayName("Starting Date")]
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? starting_date { get; set; }

}

这是调用默认浏览器支持的日期选择器。

我建议您使用viewmodel而不是您正在进行的域模型。

按如下方式更改您的模型类(我也为您的属性提供了一个很好的UI名称)

@Html.TextBoxFor(model => model.starting_date, new { htmlAttributes = new { @class = "form-control" } })

然后使用TextBoxFor并删除Type =&#34; date&#34;

public partial class ProjectStatus
{
    public int project_status_id { get; set; }

    [DisplayName("Starting Date")]
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
    [DataType(DataType.Date)]
    public DateTime? starting_date { get; set; }

}

如果您真的想支持html5类型声明,可以将它添加到您的模型类中,如此

$(document)
    .ready(function () {

        $("input[type=date]")
            .datepicker({ dateFormat: "mm/dd/yy", changeYear: true })
            .attr("type", "text");

});

您可以将jQuery日期选择器与日期字段一起使用

{{1}}

这会将日期选择器附加到输入字段的每个实例,其中html5类型设置为日期。

您需要在项目和页面中引用jquery和jquery ui