我正在寻找一种使用自定义 ASP.NET 验证程序来验证输入的方法,无需使用 UpdatePanels,也无需完整的回发。
验证器做几件事 - 不仅仅是长度/正则表达式,还有一些其他非标准的东西。
我们的用户需要 Javascript,所以我不必担心关闭 javascript 的普通用户。
我看到了几个选项,但没有一个是理想的:
1) 接受并使用 UpdatePanels。我属于“UpdatePanels 是邪恶的”小组,所以我不想这样做。
2) 在不使用验证控件的情况下,通过 jQuery 或任何其他 AJAX 框架将值传递给 PageMethod 静态方法来手动验证字段。每次我需要使用验证器时,这都需要对客户端和服务器进行编码。
3) 使用 jQuery(或任何其他 javascript 框架)验证客户端验证,然后如果他们以某种方式获得验证,则具有用于完整回发的服务器代码验证控件。这将需要用 javascript 和 C# 编写所有验证规则。此时我不关心完全失败的回发,因为 javascript 验证会捕获真正的用户,他们并没有试图把我搞砸。
是否有其他方法可以使用真正的 CustomValidator 控件,使用部分回发,仅使用 C# 代码,在没有 UpdatePanels 和大量冗余 javascript 的情况下验证输入?
谢谢
最佳答案
我会混合使用 2 和 3。
无论...如何,都会存在第一服务器端验证
所以我会制作需要基于 javascript 的简单验证逻辑(数字、文本、字符串长度、特定格式的字符串等)而没有 ajax 回调的字段,然后使用回调到需要业务规则或其他更复杂验证的服务器发生,所以复杂的规则只被编码一次。
如果您必须在非常快速的响应(或无延迟...仅 js)或有效数据之间做出选择,我希望有效数据会获胜...因此希望将 2 和 3 一起使用会给出您的响应速度更快,但不会影响有效数据。
对通用处理程序等的 Ajax 回调应该比 UpdatePanel 快一点,因为传输的数据要少得多......
关于javascript - 在没有更新面板的情况下使用 AJAX 进行 ASP.NET 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4445662/