2

我正在构建一些 MVC 应用程序,我真的很喜欢 MVC 中的数据注释支持。内置支持足以强制执行简单的验证检查。我想知道,如何使用自定义数据注释实现唯一字段验证?例如,我有一个需要用户注册新登录名的视图模型,有没有办法在调用数据库提交之前检查(使用 Model.IsValid)该名称是否不存在?

4

2 回答 2

1

您可以编写自己的验证器属性来检查我猜的数据库,或者您可以加载所有数据并进行检查。

我更倾向于简单地尝试写入数据库并在表中具有唯一约束。如果您返回一个错误,表明存在重复插入错误,那么您只需将其显示给用户。

我不想提前阅读并检查自己。

编辑

我想您也可以在执行插入的代码中进行检查。您可以进行读取,如果没有找到,则插入。

如果您确实找到了重复项,您可以添加到模型验证违规规则并返回它,以便错误会出现在页面上的验证摘要中。

于 2010-03-31T04:39:17.403 回答
-1

创建您自己的继承自 ValidationAttribute 的属性(DataAnnotations 命名空间中所有验证属性的基础)。通过检查用户 ID 的唯一性覆盖 IsValid 方法。

于 2010-03-31T04:39:45.127 回答