您如何验证多部件模型?

时间:2010-10-22 23:22:12

标签: asp.net-mvc linq-to-sql validation modelstate

我正在处理一个非常大的订单表单,其中包含一堆多部分数据,这些数据一次全部提交。我正在使用这个技巧,你在HTML中渲染30-40个项目行,并允许用户使用jQuery或多或少地“显示”或“隐藏”。

问题在于,虽然用户可能有三行“显示”并且它们碰巧完全填满了所有三行,但我的模型永远不会验证,因为还提交了另外27个无效(空)项目。

我的解决方案是说内置模型验证并使用一些自定义模型验证和ModelState.AddModelError(),但我觉得我不得不在控制器级别重复我的模型验证。

有没有更好的方法来解决这个问题?

2 个答案:

答案 0 :(得分:0)

将大表单拆分为多个表单。每个表单将代表不同的步骤。将大型模型拆分为多个视图模型,每个模型对应一个给定的步骤。如果您想要提交表单提交和显示/隐藏步骤,请逐步增强jquery。

答案 1 :(得分:0)

谢谢,但我只是遍历每一行,并使用jQuery在我的提交按钮的onclick事件中从DOM中删除了空行。