我试图找出在MVC C#应用程序中验证数据的最佳方法,并且xVal似乎是最合适的。不过,我遇到了数据类型验证的问题。使用xVal验证数据类型
起初我正在做一个UpdateModel到DTO中,然后在DTO上运行验证。对于像必需字段这样的事情来说,这非常适用,但是如果您试图将字符串(“asd”)映射到十进制字段,则UpdateModel会引发异常。由于在有任何数据需要验证之前必须先运行UpdateModel,所以我不确定如何解决这个问题。
我的解决方案是创建一个UpdateModel将复制到每个窗体的DTO,对其进行验证,然后将值复制到适当的DTO中。 DTO表单上的所有属性都是字符串,所以UpdateModel永远不会弹出,我会通过xVal强制执行数据验证。然而,虽然像所需的规则踢,我似乎无法得到DataType规则踢(在这种情况下尝试DataType.Currency)。
我也试过让客户端验证工作,但我希望有一个干净的方式来做数据类型的服务器端验证。
其他人在服务器端验证数据类型方面做了些什么?
只是为了确保:通过DTO,你的意思是你的自定义ViewModel? – 2009-09-02 18:56:38