Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
服务器端customvalidator(asp+;vb.net)未启动_.net_Vb.net_Validation_Customvalidator - Fatal编程技术网

服务器端customvalidator(asp+;vb.net)未启动

服务器端customvalidator(asp+;vb.net)未启动,.net,vb.net,validation,customvalidator,.net,Vb.net,Validation,Customvalidator,我知道这已经被问了很多,但我有一个服务器端自定义验证器没有被解雇,我找不到原因(还有,我从其他地方复制了一些可以工作的示例,但无法使其工作…) 守则: <asp:CustomValidator ID="MyValidator" runat="server" ErrorMessage="My error message" OnServerValidate="MyValidator_OnServerValidate" /> 这是我正在做的最后一个测试(从其他问题复制),但我也尝试将验证

我知道这已经被问了很多,但我有一个服务器端自定义验证器没有被解雇,我找不到原因(还有,我从其他地方复制了一些可以工作的示例,但无法使其工作…)

守则:

<asp:CustomValidator ID="MyValidator" runat="server" ErrorMessage="My error message" OnServerValidate="MyValidator_OnServerValidate" />
这是我正在做的最后一个测试(从其他问题复制),但我也尝试将验证器附加到一个控件(并添加ValidateEmptyText),删除
句柄MyValidator.ServerValidate
,并使用
onServerValidate
将其添加到标记中

(我通常是Java程序员,所以这可能是我应该看到的一个非常基本的错误,不要低估我对.Net的无知)

提前谢谢

编辑:添加提交按钮的代码

<asp:Button ID="lbGuardar" runat="server" CssClass="button" Text="Guardar" CausesValidation="true" ></asp:Button>

编辑2:在我的按钮代码上添加了一个
页面。validate()
,它不会调用验证程序的服务器端。此外,自定义验证器正在被调用(至少是客户端/javascript端,但不是服务器端)

在我脑海中,我会尝试将受保护的子对象更改为公共子对象

编辑:我刚刚测试了你的代码,你的代码对我有用。我进入调试并单击了一个按钮,该按钮返回到它首先进入MyValidator.ServerValidate的位置,这是应该的。它会使页面无效并显示错误消息。

在我的脑海中,我会尝试将受保护的Sub更改为公共Sub


编辑:我刚刚测试了你的代码,你的代码对我有用。我进入调试并单击了一个按钮,该按钮返回到它首先进入MyValidator.ServerValidate的位置,这是应该的。它会使页面无效并显示错误消息。

应该是公共方法,不需要句柄

Public Sub MyValidator_OnServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)

    Dim i As Integer
    i = 0
    args.IsValid = False

End Sub

应该是公共方法,不需要句柄

Public Sub MyValidator_OnServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)

    Dim i As Integer
    i = 0
    args.IsValid = False

End Sub


他没能成功。删除了自定义验证器,并在逻辑内部进行了验证。

无法使其正常工作。删除了自定义验证器,并在逻辑中进行了验证。

可能是我缺少的其他配置?visual studio是否可能没有更改某些基础文件?不确定。您的页面声明是什么样子的?我运行的测试已
,但我已将
AutoEventWireup
更改为true,它也不起作用。。。如果有帮助,应用程序上的其他RequiredValidator也可以工作…请尝试其他页面。只需创建一个测试页面并使用相同的代码。有时我发现,如果创建一个新页面并将旧页面复制/粘贴到新页面中,它会修复类似这样的奇怪错误。不起作用。。。我还删除了对验证器的所有引用,添加了一些requiredfieldvalidator,它们工作了,但是当我添加CustomValidator时,它们不工作了……可能是我缺少了一些额外的配置?visual studio是否可能没有更改某些基础文件?不确定。您的页面声明是什么样子的?我运行的测试已
,但我已将
AutoEventWireup
更改为true,它也不起作用。。。如果有帮助,应用程序上的其他RequiredValidator也可以工作…请尝试其他页面。只需创建一个测试页面并使用相同的代码。有时我发现,如果创建一个新页面并将旧页面复制/粘贴到新页面中,它会修复类似这样的奇怪错误。不起作用。。。我还删除了对验证器的所有引用,添加了一些requiredfieldvalidator,它们工作了,但当我添加CustomValidator时,它们不工作了…以什么方式不工作。如果在方法上放置断点,是否会触发该方法,或者它甚至没有到达该方法?它不会到达
onServerValidate
中的断点。这很奇怪,因为如果我添加客户端验证,它会被调用,但服务器验证不会被调用,即使我通过编程强制页面。validate()。。。[我总是在方法上使用断点进行调试,但它永远不会到达…]嗯。您是否尝试过使用另一个自定义验证程序创建新的服务器控件,以查看是否触发了该验证程序?就我个人而言,我会尝试从头开始创建一个新项目,并做同样的事情,看看是否可行,然后比较不同之处。。。没有发现任何有趣的差异,将继续搜索它以什么方式不工作。如果在方法上放置断点,是否会触发该方法,或者它甚至没有到达该方法?它不会到达
onServerValidate
中的断点。这很奇怪,因为如果我添加客户端验证,它会被调用,但服务器验证不会被调用,即使我通过编程强制页面。validate()。。。[我总是在方法上使用断点进行调试,但它永远不会到达…]嗯。您是否尝试过使用另一个自定义验证程序创建新的服务器控件,以查看是否触发了该验证程序?就我个人而言,我会尝试从头开始创建一个新项目,并做同样的事情,看看是否可行,然后比较不同之处。。。没有发现任何有趣的差异,将继续搜索