Asp.net mvc 带EF6的MVC5:带ICollection的EditorFor()

Asp.net mvc 带EF6的MVC5:带ICollection的EditorFor(),asp.net-mvc,asp.net-mvc-5,entity-framework-6,editorfor,icollection,Asp.net Mvc,Asp.net Mvc 5,Entity Framework 6,Editorfor,Icollection,我的MVC5/EF6网站有问题。我有一个这样的模型: (来源:) 在创建活动时,我希望至少添加一个日期。因此,我在表单中创建了一个新字段: <div class="form-group"> @Html.LabelFor(model => model.Days, new { @class = "control-label col-md-2" }) <div class="col-md-10"&

我的MVC5/EF6网站有问题。我有一个这样的模型:


(来源:)

在创建活动时,我希望至少添加一个日期。因此,我在表单中创建了一个新字段:

<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>
我是忘了什么还是做错了什么

谢谢

谢谢,它现在正在使用:

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

@LabelFor(model=>model.Days,新的{@class=“controllabel col-md-2”})
@EditorFor(model=>model.Days,“Day”)
@Html.ValidationMessageFor(model=>model.Days)
要将文本框显示为HTML5日期选择器,请不要忘记使用以下代码在编辑器模板中添加DateTime.cshtml(日期字段的类型必须为DateTime):

@模型可为空
@{
DateTime dt=DateTime.Now;
如果(型号!=null)
{
dt=(System.DateTime)模型;
}
@Html.TextBox(“”,String.Format(“{0:d}”,dt.ToShortDateString()),new{@class=“form control datecontrol”,type=“date”})
}

来源:(

您没有将模板的路径作为EditorFor的参数传递。谢谢Fals。现在我的表单正确显示了日期选择器,但当我单击“提交”时,当我在调试模式下检查时,“活动”对象的“天”字段为空。如何检索日期值?目前,我已停止使用EditorFor(model=>model.Days,“Day”)来使用一个基本的HTML5,从中我用“Request[“Day”].ToString()”在控制器中获得值。我没有利用EF,但至少它是有效的
<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>
@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" })
}