向导设计难题:使用超大型表单的替代方法

时间:2018-06-28 22:41:50

标签: asp.net-mvc asp.net-core

我正在努力如何最好地解决以下情况。我有一个可行的解决方案,但并不理想,我正在寻找可以更好应对的策略。

我必须通过向导为用户提供具有许多(〜500)选择的表单。 “选择”代表具有多个参数(当前大约为15)的指令记录,例如开始日期,结束日期,说明等。

用户必须能够:

  1. 选择该指令是否应包含在 过程。
  2. 在包含指令之前更改指令的参数。
  3. 单击“生成”按钮以处理所有选定的指令。

有些事情使事情变得复杂。指令被组织为开放式树,即,指令可以通过ParentId字段具有可以具有子指令等的子指令。指令通过外键字段分组到分组表中。

我的工作解决方案: 我使用Smart Wizard JS库和一些异步Ajax调用来根据组填充向导页面。因为我真的很想使用ASP.NET MVC的数据绑定属性,而不是想以自己的方式发明,所以我目前只生成一个表单,并使用一些jQuery进行父/子排序。因此,即使为用户提供了一个带有适当说明的向导,在后台,也只是一个表格。这一切都可以,除了,它非常慢。生成表单需要花费时间,并且在加载时,切换向导步骤也要花费时间,这大概是因为它是如此大(约10.000个字段)。

我想到的所有替代方案都包括自由使用Ajax和JavaScript以及在后端使用临时表。要求检查/取消检查逻辑,处理子级的逻辑,显示为表单逻辑等。在我开始进行长期的反复试验之前,我想请教您一些有关如何实现此目标的技巧。我不是在寻找代码示例,而只是在寻找有关如何实现此目标的一般指导。

0 个答案:

没有答案