【问题标题】:MVC5 with EF6 : EditorFor() with an ICollection带有 EF6 的 MVC5:带有 ICollection 的 EditorFor()
【发布时间】:2014-07-01 13:39:11
【问题描述】:

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


(来源:hostingpics.net

当我创建一项活动时,我想为其添加至少一个日期。所以我在表单中创建了一个新字段:

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

我是不是忘记了什么或做错了什么?

谢谢

【问题讨论】:

  • 您没有将模板的路径作为 EditorFor 的参数传递。
  • 谢谢法尔斯。好吧,现在我的表单正确显示了我的日期选择器,但是当我单击提交时,当我在调试模式下检查时,活动对象的 Days 字段为空。如何检索日期值?
  • 现在,我停止使用 EditorFor(model => model.Days, "Day") 来使用基本的 HTML 5 从中我使用“Request[”day”].ToString()”获取控制器中的值。我没有利用 EF,但至少它有效

标签: asp.net-mvc asp.net-mvc-5 entity-framework-6 editorfor icollection


【解决方案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(

【讨论】:

    猜你喜欢
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 2013-11-12
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多