今天有一个非常酷的想法,但我不知道如何去做。使用派生类和数据注释进行软验证
我在asp.net MVC3 C#中建立一页一页的表单,保存到每页末尾的临时区域。
现在这个数据进入一个有几个枚举类的类,所以它相对复杂。现在,我希望用户能够放入任何他们想要的东西而不需要验证(显然安全除外),这样他们就可以抛出任何他们想要的东西,但是我希望这可以通过软验证。
我想使用元数据进行验证,但是由于这提供了硬性验证,我不能把它放在窗体用作模型的类上(强类型)。所以,我认为最好的办法是从表单上的类中派生出一个类,然后抛出数据注释(我希望它可能以某种方式应用一个接口,但我假设它不是)
然后,当用户想要提交表单到我们的数据库,我希望表单通过和验证。我想通过将没有数据注解的类转换成dataAnnotations为空的类,并且发生的任何错误(基本上是数据无效时)生病都能够在屏幕上列出并告诉他们来解决它。
现在,我希望能够做的另一件事是,我可以以某种方式使用注释类来软验证窗体,当用户在上面。所以我可以说“我们建议你把这个领域放进去”。而不是,“这个领域不能是空的”。
所以,结论是:
- 是否可以打开和关闭接口,如果是的话,怎么样?
- 我将如何转换CLASSA成CLASSB其中CLASSB从ClassA的派生和使用dataAnnotations
- 在转换期间(2续),我将如何捕捉任何数据错误,并列出他们
- 我怎么会软验证关闭classB的形式,其中模型是类A
我希望这是所有可能的。这似乎是最干净的方式。如果有人能想到更好的方法来做到这一点,我都是耳朵......或眼睛。
更新的印象是dataAnnotations会阻止我把任何不正确的数据在1 林,但是我做的那一刻一些测试,似乎我能够以编程方式应用不正确的数据。即在必填字段中为null。那么数据注释只适用于页面上的验证吗?如果是这样,不要理会我的整个问题。
更新2 我还在寻找一个答案,如果任何人都可以贡献
感谢您的观察,是一个很好的...我知道验证是一个二元操作。我更注重检查我是否得到了真实或虚假的信息,但仍然能够提交。 – MrJD