我的模型:我的模型應該如何將數據從動態添加的文本框中存儲到數據庫中?
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