我正在开发一个ASP.NET MVC应用程序,我在其上向最终用户提供一个特殊的表单,询问相当标准的东西,名称,电话号码,地址等。但是,有些用户需要问我额外的输入,我无法计划。此外,这些形式中的一些可能具有略微不同的处理逻辑。例如,如果他们提供两个地址,他们只需要给我一个电话号码。或者,对特定邮政编码应用不同的处理费。同样,我无法知道这些自定义将会是什么样的。
现在,我不想将这些表单和逻辑烘焙到我的应用程序中,每次收到自定义工作请求时重新编译和重新发布,这会很快变得非常混乱和臃肿。糟糕的计划。
我最近看了一下XSL样式表,我没有经验,但我明白使用XSLT可以完全解决我的问题。我在正确的道路上吗?有没有人对如何动态提供与这些表单相关的表单和流程逻辑有任何建议? ASP.NET MVC中有关XSL的任何好的教程吗?
谢谢!
答案 0 :(得分:0)
这似乎是解决问题的合理方法。您可能需要考虑的是将xsl / xml与PartialViews一起使用,以便您可以根据野外规则决定要呈现哪些PartialView。
因此每个PartialView都会处理原子数据,如地址或电话。您可以附加数据,说明在xml / xsl中存储该信息的位置。
对您来说意味着您可以拥有原子功能,而xsl文件可以描述要渲染的内容和位置。
如果你设计得恰到好处,你也可以动态地向PartialView添加字段,代码应该能够处理它没有probs。
您可能遇到的设计问题是,如果您在xml文档中有数据,那么如何保存?作为数据库中的xml doc或者您将数据片段拉出到表和字段中。后者显然是首选。因此,提出一种策略,使您可以轻松地将数据拉出并存储在表中。
查找表可能是您在xml文档中存储表和字段信息的方式。
这一切听起来很复杂我知道,但是一旦你设计了初始的xml文档,真的不是这样。
答案 1 :(得分:0)
这就是我这样做的方式:我有一个From Processor页面,它以POST形式提交每个字段,并将它们作为表单post对象的子项保存到DB。然后我使用NVelocity模板来显示表单数据。这样,您所要做的就是制作新的标准HTML表单,并将其操作指向表单处理器页面,并制作新的NVelocity模板以显示新表单。
如果您选择此路线并需要更多帮助来实施,请发表评论,我会给您更多信息。
答案 2 :(得分:0)
感谢Josh Pearce和greigs两位。虽然你的想法都不是我所需要的,但每个想法都有其优点,并为我提供灵感,以达到我认为可行的解决方案。
我的每个客户都有一组我可以控制的偏好。其中一个首选项可以是“使用自定义Blah表单[t / f]”。如果我将其设置为true,我可以让我的控制器尝试通过名称“ClientIdentifier_BlahForm”查找View。如果找不到,我将只显示该表单的默认视图。
此表单的业务规则应该足够简单,以便在JavaScript中处理。另外,我可以在控制器中进行一些标准化测量。例如,我在其名称中使用“PhoneNumber”获得的任何表单值都会得到验证,等等。从那里,我可以简单地打包我的名称/值对并将它们发送到最终目的地。
再次感谢。