Проверка нескольких полей с помощью Fool Proof

Здравствуйте, я использую MVC Fool Proof Validation. чтобы проверить мою модель, и мне нужно использовать RequiredIfNotEmpty с двумя полями, но я получаю проблемы с ним

модель

public class Conexionado{

    [DisplayName("Conexión")]
    [RequiredIfNotEmpty("Conex_BT2_Pos", ErrorMessage = "Error!")]
    [RequiredIfNotEmpty("Conex_BT2_N", ErrorMessage = "Conex_BT2 Cant be empty if Conex_BT2_N isnt!")]
    public string Conex_BT2 { get; set; }

    public string Conex_BT2_N { get; set; }

    [DisplayName("Ángulo BT")]
    [Range(0, 11, ErrorMessage = "Incorrect number")]
    public int? Conex_BT2_Pos { get; set; }

}

Я пробовал что-то вроде

[RequiredIfNotEmpty("Conex_BT2_Pos , Conex_BT2_N", ErrorMessage = "Error!")]

[RequiredIfNotEmpty("Conex_BT2_Pos || Conex_BT2_N", ErrorMessage = "Error!")]

Но в этом случае я могу скомпилировать, но когда я пытаюсь использовать Conex_BT2 я получил

'System.NullReferenceException' en FoolproofValidation.dll

Кто-то знает, как я должен справиться с этим?

Спасибо!

1 ответ

На этот вопрос ответили здесь:

Надежные множественные валидаторы на одних и тех же полях Stephen Muecke

Foolproof.RequiredIfNotAttribute происходит от Foolproof.ModelAwareValidationAttribute (который в свою очередь вытекает из System.ComponentModel.DataAnnotation.ValidationAttribute). ModelAwareValidationAttribute отмечен [AttributeUsage(AttributeTargets.Property)], Ссылайтесь на исходный код. По умолчанию AllowMultiple параметр AttributeUsage является false Это означает, что вы можете применить атрибут только один раз к свойству. Вы пытались применить его 3 раза, поэтому ошибка.

Имея это true и допустив многократное его применение, возможно, возникнут проблемы с настройкой $.validator.methods а также $.validator.unobtrusive.adapters функции, используемые ненавязчивой проверкой.

Вам нужно будет использовать некоторые другие атрибуты проверки или создать свой собственный ValidationAtribute который реализует IClientValidatableили полагаться на проверку на стороне сервера.

Вы можете реализовать пользовательские проверки в свойствах модели. См. Это руководство: Создание настраиваемого атрибута проверки в MVC для создания настраиваемого атрибута проверки для выполнения необходимой работы, где вы должны написать свой собственный сценарий проверки jquery для проверки на стороне клиента в режиме инфраструктуры MVC, если используется IClientValidatable, что также объясняется в нем.,

Удачи, привет!

Другие вопросы по тегам