2010-03-31 62 views
2

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

回答

1

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

我会更倾向于试图写入数据库并在表中具有唯一约束。如果您收到一个错误,指出存在重复的插入错误,那么您只需向用户显示该错误。

我不会期待阅读和检查自己。

编辑

我想你也可以做的检查中,做插入的代码。你可以做一个阅读,如果没有发现,然后插入。

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

-1

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

+0

对不起,我没有说清楚。我知道我可以执行自定义验证属性,但为了执行唯一性检查,我需要将对象或db上下文/存储库的列表传递给验证逻辑,我不确定它是否合适。 – xandy 2010-03-31 07:27:37