View Control中的ASP.Net异常

时间:2010-04-21 18:28:15

标签: c# .net controls

我承认,我是一个.NET n00b。基本上我要做的是我有一个页面,上面有一个文本框和一个图像按钮。单击图像按钮,我希望它显示我已设置的视图控件。在此视图控件内部是图像和一些文本。所以这就是我在代码隐藏中所拥有的。

protected void btnSubmit_Click(object sender, ImageClickEventArgs e)
    {
        string email = txtUnsubscribe.Text;
        vwSuccess.Visible = true;
    }

简单吧?好吧,当我点击提交按钮时,我得到“对象引用未设置为对象的实例”。错误信息。我哪里错了?

2 个答案:

答案 0 :(得分:0)

txtUnsubscribe和vwSuccess都不为空吗?您是否尝试在调试器中单步执行它?

答案 1 :(得分:0)

基于这些信息(也就是说,根据不多),我猜你的执行顺序有问题。

由于你有txtUnsubscribe和vwSuccess成员,我假设你在某处初始化它们。如果它们是从aspx模板自动生成的,那么它们会在事件处理之前自动初始化,因此该方法永远不会抛出空引用异常。

如果空引用异常是由该事件处理程序抛出,那么它必须意味着其中一个变量未初始化(这意味着至少有一个这样的变量)不是从aspx自动生成的,而是应该手动初始化)。如果 初始化变量,那么您可能在PreRenderRender等事件中执行得太晚。

当您单击浏览器中的按钮时,浏览器会对Web服务器执行PostBack。默认情况下,此时Web服务器重新构造页面,执行事件处理,然后将其呈现回客户端。重要的是要意识到在请求之间不在服务器上维护页面。

可以在MSDN上找到页面加载/回发期间的事件顺序:http://msdn.microsoft.com/en-us/library/aa719775(VS.71).aspx

当然,如果该事件处理程序没有抛出异常,那么整个答案可能是错误的,并且可能存在一些更简单的问题。