我的MVC5 / EF6网站存在问题。我有这样的模型:
model http://img15.hostingpics.net/pics/330453Capturestackoverflow.png
当我创建活动时,我想至少添加一个日期。所以我在表单中创建了一个新字段:
<div class="form-group">
@Html.LabelFor(model => model.Days, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Days)
@Html.ValidationMessageFor(model => model.Days)
</div>
</div>
根据我在这里和那里阅读的各种来源(https://stackoverflow.com/a/11403858/360708),我必须在View / Shared / EditorTemplates /中创建一个文件Day.cshtml,这样我就可以告诉MVC我希望Day有一个编辑器为“day1”(DatePicker在这里)。
这是因为我的模型Day是Activity里面的ICollection,所以我不能像这样访问字段day1:“model.Days.day1”。我尝试过创建Day.cshtml但它不起作用。这是Day.cshtml的内容
@model GAS_VS2013.Models.Day
@Html.EditorFor(o => o.day1)
我忘记了什么或做错了什么?
由于
答案 0 :(得分:1)
感谢Fals,它正在使用:
<div class="form-group">
@Html.LabelFor(model => model.Days, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Days, "Day")
@Html.ValidationMessageFor(model => model.Days)
</div>
</div>
要将文本框显示为HTML5 DatePicker,请不要忘记在EditorTemplates中添加DateTime.cshtml,并使用以下代码(日期字段的类型必须为DateTime):
@model Nullable<DateTime>
@{
DateTime dt = DateTime.Now;
if (Model != null)
{
dt = (System.DateTime)Model;
}
@Html.TextBox("", String.Format("{0:d}", dt.ToShortDateString()), new { @class = "form-control datecontrol", type = "date" })
}
来源:http://www.aubrett.com/InformationTechnology/WebDevelopment/MVC/DatePickerMVC5.aspx(