Переопределить ScriptControl или BaseValidator для асинхронного управления ASP.NET средство проверки?
-
09-06-2019 - |
Вопрос
Я планирую разработать серверный элемент управления ASP.NET для обеспечения асинхронной проверки доступности имени пользователя при регистрации новых пользователей.Элемент управления позволит разработчику указать его на текстовое поле "имя пользователя", и он укажет, доступно ли имя пользователя.Нравится этот пример, но без неуклюжей панели обновления.
Одно дизайнерское решение, которое вызывает у меня головную боль, заключается в том, следует ли наследовать от ScriptControl ( Скриптоконтроль ) или Базовый калибровщик.
Реализуя его как ScriptControl ( Скриптоконтроль ), я могу упростить работу с клиентской частью и легко локализовать ее с помощью resx.
Тем не менее, я хочу убедиться, что валидатор функционирует должным образом по отношению к Странице.Является действительным.Единственный известный мне способ сделать это - переопределить Базовый калибровщик и внедрять EvaluateIsValid()
.
Итак, мой вопрос в том, как бы вы предложили структурировать этот элемент управления?Является ли наследование от BaseValidator лучшим (единственным) способом получить правильную часть проверки, или я могу сделать это каким-то другим способом?
Решение
Вы должны быть в состоянии сделать и то, и другое, если вы реализуете Iscriptконтроль интерфейс, также являющийся производным от BaseValidator:
public class YourControl : IScriptControl, BaseValidator
Реализация интерфейса IScriptControl означает, что ваш элемент управления также должен иметь методы GetScriptReferences и GetScriptDescriptors.