我的模型:我的模型应该如何将数据从动态添加的文本框中存储到数据库中?
public class Order
{
public int OrderId { get; set; }
public int Quantity { get; set; }
public double Width { get; set; }
public double Height { get; set; }
}
在我的那个模型强类型的视图我有TextBoxFor
对这样性质的形式:
<table>
<tr>
<td><a href="#" onclick="AddTextBox()">+</a></td>
<td>@Html.TextBoxFor(m => m.Quantity)</td>
<td>@Html.TextBoxFor(m => m.Width)</td>
<td>@Html.TextBoxFor(m => m.Height)</td>
</tr>
</table>
与AddTextBox()
的联系是一个jQuery函数动态添加另一个包含三个以上文本框的表格。
我的控制器:
[HttpPost]
public ActionResult SaveOrder(Order order)
{
context.Order.Add(order);
context.SaveChanges();
return View();
}
调试时,我可以看到订单对象中满是形式,但仅与第一数量,重量和高度的文本框的值的数据,我知道这是预期行为,我知道我收到的所有值,因为我测试如下面的例子,我的解释得到了正确填写:
[HttpPost]
public ActionResult SaveOrder(List<int> Quantity, List<int> Width, List<int> Height)
{
return View();
}
因此,这里的问题又来:我应该如何创建一个模型来保存数据的数组并保存在我的数据库?
我希望我清楚的问题,并感谢您的答案。
尝试公开列表 Orders {get;设置;}在你的视图模型。 –
2012-08-10 15:50:03
我不明白,是否在我的订单模型中添加订单清单? – 2012-08-10 16:04:12
不完全。使用视图模型而不是您的域模型来绑定输入。在视图模型中有一个订单对象列表。然后在控制器中,您可以遍历列表并在每次迭代中创建/填充/编辑一个单独的订单对象。 – 2012-08-10 16:27:22