在保留唯一HTML ID的同时编辑隔离表单帖子中的视图上的子实体

时间:2012-04-24 23:04:02

标签: c# asp.net-mvc-3 razor

我需要帮助

我正在寻找 最佳做法方法 来处理在单独的孤立表单帖子中的视图上的子实体的编辑,同时在子实体之间保留唯一的HTML ID。

例如,在视图的顶部,我希望能够更改有关订单的低级详细信息(即总计,送货方式,地址等)。此部分将发布到采用OrderViewModel

的操作

然后,我想要显示一个可以单独编辑的货件列表,每个货件都有自己的表格帖子,这些帖子映射到特定ViewModel类型的操作...在我的案例ShipmentViewModel中。

我想对OrderViewModel上的各种其他子实体属性执行相同的操作,包括OrderItemsOrderPaymentsOrderCoupons等。

为什么吗

这样做的目的是在更改订单的小细节时,我不必在每个表格帖子中传递完整的水合订单。

我尝试了什么?

我目前使用一个主视图OrderEdit.cshtml进行此操作,该视图使用部分_OrderDetailEdit.cshtml来显示订单详细信息的表单。然后,它使用for循环迭代Shipments,并调用Html.EditorFor(m => m.Shipments[i])以利用我的自定义编辑模板进行发货。

问题

这种方法的问题在于,我的用于编辑货件的操作方法被强制采用OrderViewModel而不是ShipmentModel。这并不理想,因为它总是只用一次装运来补充水分。在我的行动中使用orderEditViewModel.Shipments[0]闻起来很糟糕。

在使用编辑模板之前,我只需要一个Partial来编辑Shipments,这允许我将表单发布到具有理想方法签名的Action。这种方法的问题是每个货件的HTML ID都是相同的,导致我正在使用的jQuery插件出现UI问题。

0 个答案:

没有答案