为异步 ASP.NET 验证器控件重写 ScriptControl 或 BaseValidator?
-
09-06-2019 - |
题
我计划开发一个 ASP.NET 服务器控件,为新用户注册提供异步用户名可用性验证。该控件将允许开发人员将其指向“用户名”文本框,并且它将提供用户名是否可用的指示。喜欢 这个例子, ,但没有笨重的 UpdatePanel。
让我头疼的一个设计决策是是否继承 脚本控制 或者 基础验证器.
通过将其实现为 脚本控制, ,我可以使客户端部分更容易处理,并使用 resx 轻松本地化它。
但是,我想确保验证器针对 Page.IsValid 正常运行。我知道做到这一点的唯一方法是覆盖 基础验证器 并实施 EvaluateIsValid()
.
所以,我的问题是,您建议如何构建这个控件?从 BaseValidator 继承是使验证器部分正确的最佳(唯一)方法,还是我可以通过其他方式做到这一点?
解决方案
如果你实现了,你应该能够做到这两点 脚本控制 接口同时也派生自 BaseValidator:
public class YourControl : IScriptControl, BaseValidator
要实现 IScriptControl 接口意味着您的控件还必须具有 GetScriptReferences 和 GetScriptDescriptors 方法。
不隶属于 StackOverflow