Проблема с пользовательской проверкой на стороне клиента для PropertyValidatorC#

Место общения программистов C#
Ответить
Anonymous
 Проблема с пользовательской проверкой на стороне клиента для PropertyValidator

Сообщение Anonymous »

FluentValidation 10.3.3, .NET 5
У меня есть собственный валидатор со следующей сигнатурой:

Код: Выделить всё

public class FileSizeValidator : PropertyValidator
и я попытался реализовать его клиентскую часть, чтобы она имела четность с проверками на основе атрибутов, где клиентская часть уже работала. Существует очень мало подсказок о том, как бы я когда-либо начал это делать, но я нашел этот комментарий по проблеме, которая казалась даже не такой уж устаревшей. Определенно более новый, чем Codeplex, к которому меня привели мои поиски.
Поэтому я сделал простой клиентский валидатор, например:

Код: Выделить всё

public class FileSizeClientValidator : ClientValidatorBase
{
public FileSizeClientValidator(IValidationRule rule, IRuleComponent component) : base(rule, component)
{ }

public override void AddValidation(ClientModelValidationContext context)
{
MergeAttribute(context.Attributes, "test-attribute", "test message");
}
}
и зарегистрировал его в

Код: Выделить всё

services
.AddFluentValidation(options =>
{
options.ConfigureClientsideValidation(clientside =>
{
clientside.ClientValidatorFactories[typeof(FileSizeValidator)] = (_, rule, component) =>
new FileSizeClientValidator(rule, component);
});
});
что, похоже, в основном соответствует тому, что содержалось в комментарии, указанном выше. Не могу точно получить общий параметр для моего валидатора, чтобы его привести, потому что, похоже, его неоткуда взять, и с тех пор некоторые сигнатуры изменились, поэтому я решил провести более простой тест. Просто жестко запрограммированный атрибут и сообщение.
Увы, в форме ничего не отображается. Хуже того, ни конструктор, ни метод AddValidation не срабатывают ни в какой момент, а точки останова, размещенные там, никогда не срабатывают.

Подробнее здесь: https://stackoverflow.com/questions/690 ... yvalidator
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»