2010-03-22 97 views
8

我最近一直在研究为ASP.NET Web应用程序创建基于Web的表单的方法,这些表单可以在运行时进行编辑和管理。例如,管理员可能希望添加新的验证规则或新的一组字段。服务器端XForms表单验证并集成到ASP.NET中

圣杯将提供一种指定表单以及(可能非常复杂)任意验证规则以及为每个字段分配数据源的方法。然后,该规范将用于更新Web应用程序中的部署表单,然后验证客户端和服务器端的提交。

我的调查让我看到了Xforms和一些支持它的技术。一种解决方案似乎是IBM Lotus Forms,但这需要在基础设施方面进行非常大的投资,这使得它不可行,尽管表单设计师可能作为创建表单的独立工具很有用。我还打折了浏览器插件,因为表单必须公开可见并且符合跨浏览器。

我注意到有很多的JavaScript库提供Xforms架构的客户端实现。这些将提供部分解决方案,但服务器端验证仍然是一项要求。

另一个选择似乎涉及使用服务器端解决方案,如Java应用程序Orbeon。 Orbeon提供了一种用于指定表单的工具(尽管不像Lotus Forms Designer那样丰富),但最有趣的一点是它可以将XForms模式转换为完整的XHTML表单并进行验证。如果可以与现有的ASP.NET应用程序集成,那么使用Java编写这一事实并不是什么大问题。

所以我的问题是,是否有人以前做过这个。这听起来像是应该解决的问题,但本质上是非常复杂的。似乎有可能使用现成的工具来设计表单并将其导出到Xforms模式和xhtml表单,并且似乎可以使用该xforms模式并使用客户端库来发布它。看起来困难的是提供一种验证服务器端表单提交的方法,并将该流程与.NET很好地整合在一起(尽管看起来.NET社区并不涉及XForms;如果我错了,请纠正我在这个计数)。

如果产品提供了一些简单的Web服务,可以根据模式验证提交,我会非常高兴。也许Orbeon会这样做,但如果有人知道在我进一步研究之前能够指出我正确的方向,我会很感激。

非常感谢。

+0

伟大的问题。 – 2010-06-21 15:44:19

+0

@Nigel我知道这个问题已经超过6年了,但现在我们已经进入了类似的位置。你有没有使用.NET和Orbeon或其他动态表单构建器的经验? – veljkoz 2017-03-09 10:29:06

回答

0

我可能失去了一些东西,但...

我做这个排序中通事情的方式是创建窗体声明&的XSLT到XML转换为HTML的模式。然后,您可以根据您设计的xml模式添加各种验证。但我通常缺少的是表单设计师。

0

您可以使用XHTML作为抽象层,或者像Simon建议的那样使用自定义语言。应用程序可以在运行时加载表单,转换/设置它并将其提供给用户。您可以编辑表单并进行更改,而无需重新编译/重新部署。

验证您可以使用Schematron,这也可以在运行时使用XML-aware工具轻松编辑。

您可以使用Javascript在浏览器中生成XML数据,也可以将application/x-www-form-urlencoded转换为服务器上的XML(这是我在this page上执行的操作)。