检索提交的Eagarly表格的数据

时间:2013-11-19 06:56:03

标签: c# asp.net-mvc asp.net-mvc-3 entity-framework asp.net-mvc-4

我正在将数据加载到我的控制器操作中:

public ActionResult Index()
        {
            var temp = db.Parents.Include(x => x.Childrens).FirstOrDefault(x=>x.ID==1);
            return View(temp);
        }

在视图中,我将他们的编辑器显示为:

   @model DataLoadingDemo.Models.Parent
    @using (Html.BeginForm("Edit","Parent"))
    {    
    @foreach (var item in Model.Childrens)
                {
                    <div class="form-group">
                        @Html.LabelFor(model => item.Name, new { @class = "control-label col-md-2" })
                        <div class="col-md-10">
                            @Html.EditorFor(model => item.Name)
                            @Html.ValidationMessageFor(model => item.Name)
                        </div>
                    </div>
                }
}

当我提交表格时,那时候我没有把“孩子”带进我的[Httppost]行动,就像::

public ActionResult Edit([Bind(Include="ID,Name")] Parent parent, List<Children> item)
        {
            if (ModelState.IsValid)
            {
                db.Entry(parent).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(parent);
        }

我刚收到“父母数据”,而不是Eagarly加载的儿童。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

我假设您正在使用Entity Framework。 看看这篇文章:http://msdn.microsoft.com/en-us/data/jj574232.aspx

首先,确保您拥有ID等于1的父母记录,并确保它具有儿童记录。 如果这两个条件都为真,那么我怀疑FirstOrDefault子句正在寻找Childrens ID等于1的项目。 您希望确保它正在查找父母ID等于1的项目。

尝试更改子句的顺序,如下所示。

public ActionResult Index()
    {
        var temp = db.Parents.Where(x=>x.ID==1)
             .Include(x => x.Childrens).FirstOrDefault();
        return View(temp);
    }