如何在MVC中强制执行唯一字段验证

时间:2010-03-31 04:35:07

标签: asp.net-mvc validation data-annotations unique-key

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

2 个答案:

答案 0 :(得分:1)

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

我更倾向于简单地尝试写入数据库并在表中具有唯一约束。如果您收到错误消息,表明存在重复的插入错误,那么您只需向用户显示该错误。

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

修改

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

如果找到重复内容,您可以添加模型验证违规规则并将其返回,以便错误显示在页面上的验证摘要中。

答案 1 :(得分:-1)

创建自己的属性,该属性继承自ValidationAttribute(DataAnnotations命名空间中所有验证属性的基础)。使用对用户标识唯一性的检查来覆盖IsValid方法。