検証属性を使用して、ビューからコントローラーにオブジェクトのリストを投稿しているときに、重複があるかどうかを確認しています。それは機能しますが、従うべきより良いアプローチがあるかどうかを知りたいです(クライアント側の検証を追加する可能性があります)。フィードバックをいただければ幸いです。
[AttributeUsageAttribute(AttributeTargets.Property, AllowMultiple = true, Inherited = false)]
public class DuplicateObjectAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value != null)
{
if (value.GetType() == typeof(List<OrdersVM>))
{
List<OrdersVM> objOrdersList = (List<OrdersVM>)value;
if (objOrdersList != null && objOrdersList.Count > 0)
{
if (objOrdersList.Select(p => p.OrderId).Distinct().Count() != objOrdersList.Select(p => p.OrderId).Count())
return false;
}
}
}
return true;
}
}