У меня есть следующий настраиваемый атрибут проверки, чтобы проверить, не совпадают ли два свойства, но они применяются ко всей модели:
[AttributeUsage(AttributeTargets.Class)]
public class ValidateUser : ValidationAttribute
{
public override bool IsValid(object value)
{
UserViewModel user = value as UserViewModel;
if(user.UserId == user.ManagerId)
{
ErrorMessage = "The user and manager cannot be the same";
return false;
}
return true;
}
}
[ValidateUser]
public class UserViewModel
{
[DisplayName("Request By")]
public string UserId { get; set; }
[DisplayName("Assign To")]
public string ManagerId { get; set; }
}
Как я могу создать атрибут проверки, чтобы вместо удаления всей модели представления я мог украсить свойства, которые необходимо проверить, чтобы сообщение об ошибке отображалось рядом с проверяемым полем. что-то вроде ниже:
[DisplayName("Request By")]
[ValidateUser]
public string UserId { get; set; }
[DisplayName("Assign To")]
[ValidateUser]
public string ManagerId { get; set; }
[NotEqualTo]
, применяемого к вашим ресурсам. В противном случае вы можете создать свой собственный — см. Полное руководство по проверке в ASP.NET MVC 3 — часть 2 за хорошее руководство - person   schedule 08.08.2016