有没有办法验证模型上应该是唯一的属性?例如,用户可以创建和编辑“产品”,但他们不应该能够创建具有现有 ProductCode 的产品,也不应该能够编辑产品并将 ProductCode 更改为已经存在的代码。
我尝试过使用自定义属性。
public class Unique : ValidationAttribute
{
public override bool IsValid(object value)
{
var products = Repository.Store.Products.Where(x => x.ProductCode == value);
return (products.Count() == 0);
}
}
当代码已存在于数据库中时,我可以使用此解决方案涵盖的所有内容都不允许用户插入/更新产品。这不允许用户编辑现有产品,因为当他们提交时,它会看到代码已经存在(这将是他们尝试编辑的产品的代码。)并返回 false。
有没有办法处理 MVC 2 中的唯一索引,我已经搜索了几个小时,甚至在 stackoverflow 上找到了其他主题,但没有一个可靠的解决方案。