是否有一个很好的设计模式来解决应用场景,当一个现有的项目集合,显示在一个“ListItem”视图中,需要添加一个新项目,进入另一个“NewItem”视图?
例如,一个带有 EF4.1 Code First 的 ASP.NET MVC3 应用程序管理一个产品列表,每个产品都包含一个部件列表。EF 模型包括具有几个基本类型属性的 Product 对象和 Part 对象的集合。
用户可以将新产品添加到列表中,打开 NewProductView 并输入一般产品信息,然后输入该新产品的部件集合。零件信息收集在另一个新零件视图中,需要包含在新产品的现有零件集合中。主要挑战是,在 NewProduct 视图和 NewPart 视图之间来回切换时,持久保存此 Parts 临时集合的最佳实践是什么?
一种选择是将新的 Part 记录立即保存到数据库中,但尚未构建父 Product 对象,并且需要多次数据库调用。理想情况下,应在一次调用中保存完整的新产品对象及其部件集合。另一种选择是将会话用于临时部件集合存储,但我确信这是否是一个好方法。目前我对不使用 Ajax 或其他客户端站点技术的设计模式很感兴趣,只是从视图中获取/发布到服务器的标准获取/发布。