【问题标题】:Get Date from Database in HtmlEditor helper tag [duplicate]从 HtmlEditor 帮助器标记中的数据库中获取日期 [重复]
【发布时间】:2018-03-13 12:59:33
【问题描述】:

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

以下是查看文件中的代码。

@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; }

}

【问题讨论】:

  • 请包括你的模型类。
  • 弗兰,我已经更新了
  • 我在表格中使用“日期”类型

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


【解决方案1】:

您将获得默认浏览器数据选择器,因为您已添加

在你的 HtmlEditorFor 中输入 = "date"

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

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

我建议您使用视图模型而不是您当前的域模型。

如下更改你的模型类(我也给你的属性取了一个好听的 UI 名称)

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; }

}

然后使用 TextBoxFor 并删除 Type = "date"

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

如果你真的想支持 html5 类型声明,你可以像这样将它添加到你的模型类中

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; }

}

您可以在日期字段中使用 jQuery 日期选择器

$(document)
    .ready(function () {

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

});

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

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

【讨论】:

  • 感谢您抽出宝贵时间。通过使用文本框而不是编辑器并删除 type="date",我无法选择日历来编辑日期。它只是显示日期。但是我还需要像以前一样使用日期选择器进行编辑。
  • 并非所有浏览器都支持开箱即用的日期选择器。因此,您的用户体验可能会因浏览器而异。您可以使用我的答案中包含的第二类声明。这将使用 html 数据类型标记标记您的 starting_date,以便您仍然可以使用内部浏览器日期选择器。我可能更适合您使用 jQuery 数据选择器,以便您在浏览器中拥有一致的外观。
  • 你能帮我用 jquery 实现这个吗,我是新手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
  • 2020-11-13
  • 2013-03-18
  • 2019-10-24
  • 2016-09-08
  • 2014-05-04
  • 2018-02-16
相关资源
最近更新 更多