【发布时间】:2009-08-31 16:49:07
【问题描述】:
我正在尝试找出在 MVC C# 应用程序中验证数据的最佳方式,而 xVal 似乎是最合适的。但是我遇到了数据类型验证的问题。
起初我在 DTO 中执行 UpdateModel,然后在 DTO 上运行验证。这对于诸如必填字段之类的东西非常有用,但是如果您尝试将字符串(“asd”)映射到十进制字段,UpdateModel 会抛出异常。由于必须在有任何数据验证之前运行 UpdateModel,我不知道如何解决这个问题。
我的解决方案是为 UpdateModel 复制到的每个表单创建一个 DTO,对其运行验证,然后将值复制到适当的 DTO 中。表单 DTO 上的所有属性都是字符串,因此 UpdateModel 永远不会爆炸,我将通过 xVal 强制执行数据验证。然而,虽然像 required 这样的规则正在启动,但我似乎无法启动 DataType 规则(在这种情况下尝试 DataType.Currency)。
我也尝试过让客户端验证工作,但我希望有一种干净的方法来对数据类型进行服务器端验证。
其他人在服务器端验证数据类型方面做了什么?
【问题讨论】:
-
只是为了确保:DTO 是指您的自定义 ViewModel 吗?
标签: c# asp.net validation xval