我有两个模型:Order
和OrderItem
。为了创建一个新的Order,我需要至少有一个OrderItem,所以我创建了一个ViewModel来结合这两个模型,因此我可以使用一个Create View创建一个Order和一个或多个OrderItems。因为每个订单都需要一个或多个OrderItem,所以我有一个局部视图,可以通过按钮将其加载到该视图上,以允许我多次捕获OrderItem的输入。
如何保存OrderItem输入数据,以便可以将其作为OrderItems数组发送回控制器。
这是我的ViewModel:
//--Order--
public int OrderId { get; set; }
public datetime Date { get; set; }
public int CustomerId { get; set; }
// --OrderItem--
public int OrderItemId { get; set; }
public string ItemName { get; set; }
public int Quantity { get; set; }
public decimal ItemPrice { get; set; }
这是我的CreateView:
@model POS.Models.Order_OrderItem
@Html.EditorFor(model => model.Date, ...)
@Html.DropDownListFor(model => model.ClientId ...)
//button for loading Partial View that has OrderItem Fields
<button onclick="getOderItemPartialView()" id="addItemBtn">Add Order</button>
<script>
function getOderItemPartialView() {
var url = "/CreateOrder_OrderItem_VM/AddItem";
$("#itemdetails").load(url);
};
</script>
最后,OrderItem输入的局部视图:
@model POS.Models.Order_OrderItem
@Html.EditorFor(model => model.ItemName, ...)
@Html.EditorFor(model => model.ItemPrice, ...)
@Html.EditorFor(model => model.ItemQuantity, ...)