using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Web;
using BLL.BLL;
namespace www.nabian.com.Models
{
public class NameAndBearchValidation : ValidationAttribute
{
RegisterManagerBLL manager = new RegisterManagerBLL();
public string OtherProperty { get; set; }
public string OtherPropertyDisplayName
{
[CompilerGenerated]
get
{
return OtherPropertyDisplayName;
}
[CompilerGenerated]
internal set
{
}
}
public override bool RequiresValidationContext
{
get
{
return RequiresValidationContext;
}
}
public NameAndBearchValidation(string otherProperty)
{
if (otherProperty == null)
throw new ArgumentNullException("otherProperty");
OtherProperty = otherProperty;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var property = validationContext.ObjectType.GetProperty(OtherProperty);
var other = property.GetValue(validationContext.ObjectInstance, null);
if (manager.QueryComName(value.ToString()) <= 0 && manager.QueryComName(other.ToString(), value.ToString()) <= 0)
{
return ValidationResult.Success;
}
return ValidationResult.Success;
}
}
}
测试
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using www.nabian.com.Models;
namespace www.nabian.com.ViewsModels
{
public class textModel
{
[NameAndBearchValidation("comName", ErrorMessage = "两个属性不唯一")]
public string name { get; set; }
public string comName { get; set; }
}
}