Я пытаюсь подключить проверку на стороне сервера, поэтому есть какая-то последняя линия защиты, так что плохие данные не проходят. Одно из моих полей зависит от логического значения. Если логическое значение true, значение int должно быть 0. Если оно ложно, оно должно находиться между 1 и 7. Это то, что у меня есть до сих пор, но оно не работает.Пользовательская проверка на стороне сервера MVC Entity Framework
[ValidApplicationPrimary(ComplianceProfile= NFlagComplianceProfile)]
[Column("APPLICATION_PRIMARY")]
public int ApplicationPrimary { get; set; }
[Required]
[Column("NFLAG_COMPLIANCE_PROFILE")]
public bool NFlagComplianceProfile { get; set; }
public class ValidApplicationPrimary : ValidationAttribute
{
public Boolean ComplianceProfile { get; set; }
public override bool IsValid(object value)
{
if (ComplianceProfile)//If they have a compliance profile the value of Application Primary should be 0
{
if (((Int32)value) == 0)
{
return true;
}
else
{
return false;
}
}
else if (((Int32)value) > 0 && ((Int32)value)<=7) //If Application primary is between 1 and 7 then it is true
{
return true;
}
else //Outside that range its false
return false;
}
Я получаю эту ошибку
Error 3 An object reference is required for the non-static field, method, or property 'EntityFrameworkTable.NFlagComplianceProfile.get'
Это выглядит интересно, и мне, возможно, придется попробовать это, но я также нашел этот веб-сайт и взял кое-что оттуда для меня. Http://www.binaryintellect.net/articles/55bef03e-3d41-4a0a-b874-78b7c7a9ce36.aspx, который я опубликую в качестве ответа, чтобы другие могли видеть. –
Глядя на два ответа, похоже, они используют примерно ту же концепцию –
Да, похоже. Обратите внимание, что статья devtrends также показывает, как вы можете добиться проверки на стороне клиента. –