ASP.NET,如何在不回发的情况下显示customValidator的错误消息?

ASP.NET,如何在不回发的情况下显示customValidator的错误消息?,asp.net,Asp.net,有没有一种不回发就显示customValidator错误消息的方法 我使用了requiredFieldValidator和customValidator。fomer可以是内联的,并且可以显示错误消息而无需回发。customValidator可以这样做吗?您可以使用更新面板ajax来执行此操作,而无需回发。选项1: 每当我创建自定义验证器时,我都会尝试创建服务器和客户端验证方法来进行验证。创建客户端方法将避免不必要的回发。作为一种安全措施,应该提供服务器端方法 例如: <asp:Textbo

有没有一种不回发就显示customValidator错误消息的方法


我使用了requiredFieldValidator和customValidator。fomer可以是内联的,并且可以显示错误消息而无需回发。customValidator可以这样做吗?

您可以使用更新面板ajax来执行此操作,而无需回发。

选项1:

每当我创建自定义验证器时,我都会尝试创建服务器和客户端验证方法来进行验证。创建客户端方法将避免不必要的回发。作为一种安全措施,应该提供服务器端方法

例如:

<asp:Textbox id="text1" runat="server" text=""></asp:Textbox>
<asp:CustomValidator id="CustomValidator2" runat="server" 
  ControlToValidate = "text1"
  ErrorMessage = "You must enter at least 8 characters!"
  ClientValidationFunction="validateLength" >
</asp:CustomValidator>
<script type="text/javascript">
  function validateLength(oSrc, args){
   args.IsValid = (args.Value.length >= 8);
}
</script>

函数validateLength(oSrc、args){
args.IsValid=(args.Value.length>=8);
}
选项2:


构建客户端验证方法并不总是可能的。在那里你可以使用更新面板隐藏那些回发。

回答得好。与此相关的一点是,在所有的重用和OOP都在进行的情况下,为什么我们必须在两个(如果算上数据库约束的话,是三个)地方做完全相同的事情呢?数据库约束是为了数据库的一致性。它们应该始终存在,因为您永远不知道数据将从何处进入数据库。Web服务、网站、手动等。服务器端也应该始终存在,因为没有人可以篡改它。它使您的应用程序更加健壮。客户端只是为了改善用户体验而可以选择做的事情。我现在想象自己正在与董事会/首席技术官召开状态会议,试图解释为什么“验证”在六个月前“100%”完成,但三名顶级开发人员仍在按收费代码计费。此外,自定义的c#或任何服务器端代码不能直接解析为javascript或sql(实体框架除外)。因此,不能重复使用。为什么数据库约束异常不能冒泡并被用于中间层来发出无效的输入信号?