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