有人想出了简单的解决方案吗?
问题:鉴于两个模型类的关系为一对多,我如何为这些设计单个创建..
如何将订单详细信息集合添加到数据库中尚未保留的订单实体?我将使用什么视图模型? 鉴于我已经完成订单页面(主页),那么我必须有一个收集订单详细信息的部分视图,之后当我点击“保存”时,它将创建“订单”加上其“订单详细信息”的集合。感谢
简单的代码解决方案将会有所帮助。感谢
这是我的模特:
public class Order
{
[Key]
public int OrderID { get; set; }
[DisplayFormat(NullDisplayText = "0.00")]
public decimal TotalAmount { get { return OrderDetails.Sum(od => od.Amount); } }
public decimal Cash { get; set; }
[DisplayFormat(NullDisplayText = "0.00")]
public decimal TotalBV { get { return OrderDetails.Sum(od => od.BV); } }
public int MemberID { get; set; }
public virtual Member Member { get; set; }
public virtual ICollection<OrderDetail> OrderDetails { get; set; }
}
public class OrderDetail
{
[Key]
public int OrderDetailID { get; set; }
public int OrderID { get; set; }
public decimal Amount { get { return Product.Price * Quantity; } }
public decimal BV { get { return Product.BV * Quantity; } }
public int Quantity { get; set; }
public virtual Product Product { get; set; }
}
感谢。
答案 0 :(得分:0)
简短的回答实际上是“它取决于”:)你首先要问的问题(它与MVC无关)如下:你什么时候想提交用户条目?我可以想到几个选择:
此外,您需要回答有关订单详情的相同问题。是否要提交每一行,或者允许用户创建多行(通过一些“添加行”按钮和后面的JavaScript代码),然后提交一组行。
一旦确定了您想要的方式 - 设计表单会更容易。如果你遇到问题 - 回来;我相信你会得到很多帮助!
上帝运气
答案 1 :(得分:0)
我不知道MVC的绑定是多么聪明,因为我使用自己的绑定,所以我不知道它是否可以绑定模型 你。
您可以做的是为每一行的所有输入编号。所以Product1
,'Amount1`等等。对于每个新行(比如有一个“添加详细信息”按钮),您可以使用下一个可用数字创建一组新输入。
当你解析Request.Form
时,你只需要找到每一行,直到你找不到 - 然后你知道你已经完成了。
HTH