MVC EditorFor Date未显示Value

时间:2017-12-31 08:37:31

标签: c# asp.net-mvc

我想在MVC应用程序中从模型中显示德语日期格式(dd.MM.yyyy)的日期,并为用户提供日期选择器。我已经通过这个主题已经回答了很多问题,但仍然无法使其发挥作用。我在Firefox和Edge中尝试过,每个步骤都有相同的结果。

第1步:

型号:

private DateTime? inbetriebnahmedatum;

public DateTime? Inbetriebnahmedatum
{               
    get { return inbetriebnahmedatum; }
    set { inbetriebnahmedatum = value; OnPropertyChanged(new PropertyChangedEventArgs("Inbetriebnahmedatum")); }
}

查看:

@Html.EditorFor(model => model.Inbetriebnahmedatum, new { htmlAttributes = new { @class = "form-control", placeholder = "Datum eingeben" } })

结果:没有Datepicker,显示时间,验证错误 enter image description here

第2步:添加了DataType

型号:

private DateTime? inbetriebnahmedatum;

[DataType(DataType.Date)]
public DateTime? Inbetriebnahmedatum
{
    get { return inbetriebnahmedatum; }
    set { inbetriebnahmedatum = value; OnPropertyChanged(new PropertyChangedEventArgs("Inbetriebnahmedatum")); }
}

查看:未更改

结果:未加载值。 enter image description here

第3步:添加了DisplayFormat,删除了数据类型

型号:

private DateTime? inbetriebnahmedatum;

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")]
public DateTime? Inbetriebnahmedatum
{
    get { return inbetriebnahmedatum; }
    set { inbetriebnahmedatum = value; OnPropertyChanged(new PropertyChangedEventArgs("Inbetriebnahmedatum")); }
}

查看:未更改

结果:显示日期,但没有日期选择器和验证错误 enter image description here

第4步:将ui Culture添加到Web.config

的Web.config

<globalization uiCulture="de-DE" culture="de-DE" />

结果:相同 enter image description here

步骤5:再次添加数据类型

型号:

private DateTime? inbetriebnahmedatum;

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")]
public DateTime? Inbetriebnahmedatum
{
    get { return inbetriebnahmedatum; }
    set { inbetriebnahmedatum = value; OnPropertyChanged(new PropertyChangedEventArgs("Inbetriebnahmedatum")); }
}

结果:未加载值,datepicker显示 enter image description here

1 个答案:

答案 0 :(得分:0)

我不确定,但你可以尝试一下 尝试输入,如&gt;&gt; : 01/01/2018

[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]

Show Time and data using Data annotation