2011-03-10 133 views
0

我正在研究一个非常动态的网站构建。我想要做的是创建类似于可以从控制面板动态创建的调查。
在控制面板中添加输入字段(这些字段保存在数据库中),然后用户看到的是我从数据库生成的表单。因此,如果我向数据库添加3个输入字段,调查将包含3个字段。如果我添加20个字段,调查将有20个字段。MVC 3验证动态表单域。 ASP.NET

现在我的问题是,我想验证这些字段,我希望能够钩住我的标准验证流程。由于字段数和字段名是动态的,因此我无法创建带有验证规则的模型,我知道的唯一事情就是在每个字段中预期的数据类型(此规则在数据库中找到)。
在一般情况下,我会得到无效的自动突出显示的字段等等,这要感谢内置的ValidationResult验证流程等等。

所以现在的问题是我可以以某种方式模拟验证的部分,然后用验证结果钩住我,如果无效,表单将打印错误消息并填充给出的数据字段?

问候 托比亚斯

回答

3

我会做的是创造某种Expando模型,我自己ModelMetadataProvider的,并且还可能需要我自己ModelValidator该模型。

然后,您可以使用Html.EditorFor和其他Html帮助器轻松创建验证,因为它们使用元数据来创建验证。

顺便说一句,你威力还需要创建一个模型绑定:)

元数据: ​​

http://weblogs.asp.net/seanmcalinden/archive/2010/06/11/custom-asp-net-mvc-2-modelmetadataprovider-for-using-custom-view-model-attributes.aspx

http://bradwilson.typepad.com/blog/2010/01/why-you-dont-need-modelmetadataattributes.html

验证http://dotnetslackers.com/articles/aspnet/Customizing-ASP-NET-MVC-2-Metadata-and-Validation.aspx#s2-validation

http://dotnetslackers.com/articles/aspnet/Experience-ASP-NET-MVC-3-Beta-the-New-Dependency-Injection-Support-Part2.aspx#s10-new-support-for-validator-provider

模型绑定

http://www.singingeels.com/Articles/Model_Binders_in_ASPNET_MVC.aspx

这可能矫枉过正博......但这些都是可以使用的扩展点。

+0

谢谢!我将在明天进行调查,所有这些链接都必须是一个令人讨厌的答案;) – Tobias 2011-03-10 17:24:56