2011-03-10 136 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