我需要什么帮助
我正在寻找最佳实践方法来处理在单独的隔离表单帖子中的视图上编辑子实体,同时在子实体之间保留唯一的 HTML Id。
例如,在视图的顶部,我希望能够更改有关订单的低级详细信息(即总计、运输方式、地址等)。本节将发布到一个采取OrderViewModel
.
然后我想显示一个可以单独编辑的 Shipments 列表,每个都有自己的表单帖子,这些帖子映射到特定 ViewModel 类型的操作......在我的例子ShipmentViewModel
中。
OrderViewModel
我想对包括OrderItems
、、OrderPayments
等上的各种其他子实体属性执行相同的操作OrderCoupons
。
为什么?
这样做的目的是,在更改订单的小细节时,我不必在每个表单帖子中传递完整的水合订单。
我尝试了什么?
我目前使用一个主视图进行这项工作OrderEdit.cshtml
,它使用部分视图_OrderDetailEdit.cshtml
来显示订单详细信息的表单。然后,它使用 for 循环遍历 Shipments,并调用Html.EditorFor(m => m.Shipments[i])
以利用我的自定义发货编辑器模板。
问题
这种方法的问题是我用于编辑 Shipments 的 Action 方法被迫采用.OrderViewModel
而不是ShipmentModel
. 这并不理想,因为它总是会通过一个且只有一个装运来补充水分。orderEditViewModel.Shipments[0]
在我的行动中使用它闻起来很糟糕。
在使用编辑器模板之前,我只有一个用于编辑 Shipments 的 Partial,它允许我将表单发布到具有理想方法签名的 Action。这种方法的问题是每个 Shipment 的 HTML id 都是相同的,导致我正在使用的 jQuery 插件出现 UI 问题。