我从MVC开始,我有一些基本的问题,也许你可以指导我一点点: 我正在使用MVC5与Razor和EntityFramework 6.这里没有AngularJS技能。 我有一个经典的Master-Detail CRUD,我需要创建Order和OrderItems。我的想法是,当您创建订单时,您可以以相同的形式添加项目,然后使用一个SAVE按钮在数据库上创建两个记录(订单和项目)。
我用脚手架创建了“Orders”CRUD非常好,它完美无缺。但是现在我需要添加相同的VIEW项目,这就是我迷失方向并尝试不同的方法来做到这一点:
public ActionResult Create([Bind(Include = "Id,Date,*other fields*")] Order order)
,它可以与ORDER CRUD操作一起使用。但是,现在,如果需要将List添加到该标题上绑定的字段列表中,这可能吗?我应该如何在View中保存数据呢? 当我寻找更多信息时,我越来越迷失了......所以,我在这里向你们寻求帮助!
提前多多感谢!!
答案 0 :(得分:1)
创建自定义视图模型:
public class NewOrderViewModel
{
public Order order { get; set; }
public OrderItem[] orderItems { get; set; }
}
然后,您可以在视图中使用此功能,方法是更改顶部的@model NewOrderViewModel
,然后您就可以使用:
@Html.TextBoxFor(m => m.order.Phone);
@Html.TextBoxFor(m => m.orderItems[0].ItemName);
您需要一些javascript来复制html并为用户想要添加的每个新orderItem创建新的表单元素。
然后您的控制器签名将如下所示:
public ActionResult Create(NewOrderViewModel content)