【发布时间】:2017-03-18 03:44:53
【问题描述】:
我想添加一个家庭,它有很多成员,并且可以有很多房屋。我正在尝试制作一个表格并提交带有其他对象集合的对象系列。我尝试了几件事,但我只能让一个对象传递给控制器而不是集合。我能做什么?
我应该制作成员和房屋部分视图并将它们呈现在视图中吗??
有没有办法通过收集 JavaScript 中的所有内容然后将整个家庭对象传递给控制器来做到这一点?
我正在使用带有实体框架的 MVC 5。我无法解决这个问题。任何帮助表示赞赏。
这是一个对象的例子
public class family
{
public int id { get; set; }
public int familyname { get; set; }
public List<member> members { get; set; }
public List<house> houses { get; set; }
}
public class member
{
public int id { get; set; }
public string name { get; set; }
public DateTime birthdate { get; set; }
//foreign key
public family Family { get; set; }
public int FamilyID { get; set; }
}
public class house
{
public int id { get; set; }
public int number { get; set; }
public string address { get; set; }
//foreign key
public family Family { get; set; }
public int FamilyID { get; set; }
}
public class FamilyViewModel
{
public family Family { get; set; }
public member Member { get; set; }
public house House { get; set;}
public List<member> Members { get; set; } //??
public List<house> Houses { get; set; } //??
}
查看
@model WebApp.ViewModels.FamilyViewModel
@{
ViewBag.Title = "New";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Family</h2>
@using (Html.BeginForm("Submit", "Family"))
{
<div class="form-group">
@Html.LabelFor(m => m.Family.familyname)
@Html.TextBoxFor(m => m.Family.familyname, new { @class = "form-control"})
</div>
<div id="member">
</div>
<div id="house">
</div>
}
控制器
[HttpPost]
public ActionResult Submit(FamilyViewModel CompleteFamily)
{
//What to do here?
return View();
}
【问题讨论】:
-
如果您正在编辑集合中的现有对象,请参考this answer。如果您想在集合中动态添加(和删除)项目,请参考this answer
-
您是只想编辑现有项目还是还需要添加新项目?
-
我希望添加和编辑它们。但要先添加再显示编辑。
-
那么你如何展示家庭和成员?在不同的局部视图中?
-
这就是我感到困惑的地方。我对会员和众议院有部分看法。在 Family 的视图中,我渲染了 member 和 house。
标签: c# asp.net-mvc entity-framework asp.net-mvc-4 razor