这是一个与人们如何处理 Web 应用程序的用户界面中的情况有关的问题。我有一个页面,当用户想要创建/编辑父对象时会显示该页面。它有一些与此 Parent 对象相关的属性,以及一个 Save 按钮,因此可以保存 Parent。每个 Parent 对象都有一个 Child 对象的集合(显示在同一页面的网格中),并且在同一屏幕上,用户可以添加/修改/删除 Child 对象,类似于以下内容:
Parent Information:
ParentName: [textbox]
ParentDate: [datepicker]
Children Information:
ChildName ChildDate Delete
[textbox] [datepicker] [button]
[textbox] [datepicker] [button]
[textbox] [datepicker] [button]
[Add Child button]
[Save button] [Cancel button]
请注意,当我需要时,我真的只想有按钮:一个保存按钮(统治它们!)。当用户创建或编辑父对象时,我试图启用以下场景:
- 用户修改父信息(尚未保存到数据库中)
- 用户添加/修改/删除子对象(尚未保存到数据库中)
- 用户点击保存(保存所有父子信息)
通过各种花哨的 AJAX 式东西,我可以在不刷新页面的情况下实现这一点,但同时我每次都会将所有中间更改保存到 Web 服务器上的用户会话中。例如:用户单击“添加”按钮(添加一个新的子对象),所以我进入会话,检索我已经放在那里的父对象并将一个新的子对象添加到子对象的集合中,然后绑定这个到数据列表。下次单击“添加”按钮时,我必须将用户对第一个子条目所做的更改保存回我从会话中检索到的对象中并重复该过程。
这是疯了吗?也许我正试图将“状态”强制到“无状态”Web 应用程序上,但不应该这样做。我理解在网格中进行每行项目编辑的概念,但这对于小屏幕来说似乎很愚蠢,因为父母有几条信息,每个孩子有几条信息,而且用户需要额外点击.
我认为这个问题与技术无关,但以防万一您需要知道这是一个 ASP.NET Web 应用程序。