ASP.net:“对象引用未设置为对象的实例。”对于现有对象

时间:2013-04-12 20:11:36

标签: asp.net

我在 asp.net 4.0 网络应用程序中使用 MSCaptcha 控件。我已在 Bin 文件夹中提供了 .dll .xml 文件,并在页面顶部添加了<%@ Register Assembly="MSCaptcha" Namespace="MSCaptcha" TagPrefix="cc1" %>。 这就是我在页面中使用它的方式:

<cc1:CaptchaControl ID="Captcha1" runat="server"
                 CaptchaBackgroundNoise="Low" CaptchaLength="4"
                 CaptchaHeight="60" CaptchaWidth="300"
                 CaptchaLineNoise="None" CaptchaMinTimeout="1"
                 CaptchaMaxTimeout="240" FontColor = "#529E00" />

在后面的代码中我使用它:

If Page.FindControl("Captcha1").ToString = "MSCaptcha.CaptchaControl" Then
    Captcha1.ValidateCaptcha(webCaptcha.Text.Trim())

    If Captcha1.UserValidated Then
        addComment()
    Else
        webWrongCaptcha.Text = "Captcha is wrong!"
    End If
Else
    Response.Redirect("contact.aspx?c=e")
End If

但如果用户点击CaptchaMaxTimeout之后的按钮

,我就会遇到此错误
Line 7:              Captcha1.ValidateCaptcha(webCaptcha.Text.Trim())

我该如何解决?

2 个答案:

答案 0 :(得分:0)

在调用它的属性之前,在一个确定Captcha是否为空的语句中包装你的逻辑。如果是,请通过向客户端发送消息来处理错误,让他们知道他们超过了超时,他们需要再试一次。

答案 1 :(得分:0)

将EnableViewState =“False”添加到代码中: