什么是覆盖mvc应用程序中的数据验证的最佳方法

时间:2010-06-10 20:19:15

标签: jquery asp.net-mvc xval

我有一个非常大的表单我需要用户完成。无论是否有效,他们都需要能够保存他们的进度。当他们稍后回来时,他们可以更新并生效 - 然后提交数据。

我在域模型上使用客户端脚本(xval),服务器端属性。

2 个答案:

答案 0 :(得分:0)

一个选项是让[Save Draft]按钮转到另一个Action SaveDraft()而不是Save()。通过使用单独的方法,您可以决定保存操作所需的验证量。我认为更清洁。

要使相同的保存操作决定是否应用验证逻辑量将更难以阅读和维护。

答案 1 :(得分:0)

我对xval知之甚少,但也许您可以考虑继承xval属性并在那里进行检查......

e.g。 ConditionalRequiredAttribute:RequiredAttribute,它可以采用适当的状态进行验证。

如果满足验证条件(状态!=“草稿”),验证将与ConditionalRequiredAttribute的验证方法中的base.Validate()(或其所谓的任何内容)一样简单。

由于我不知道xval,我不确定客户端验证是如何工作的......它是否创建了客户端验证代码?在这种情况下,您必须编写在javascript中创建类似包装器的代码(例如if(status!=“Draft”)...如果验证只是对返回错误列表的服务器进行Ajax调用,那么我想你不需要做任何其他事情。

抱歉,我无法直接回答您的问题,但也许这可以帮助您提出一些想法......