【发布时间】:2008-11-14 17:57:58
【问题描述】:
代码如下:
protected bool IsOKToSend()
{
bool IsOK = true;
lblErrorSending.Visible = false;
if (txtUserName.Text == "" )
{
lblErrorSending.Text = "Please enter your username before sending.";
IsOK = false;
}
return IsOK;
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (IsOKToSend())
{
adsUser.Insert();
Response.Redirect("complete.aspx");
}
else
{
lblErrorSending.Visible = true;
}
}
由于某种原因,它不能在实时服务器上始终如一地工作。 请记住,它总是在我的本地开发机器上工作,有时 (大约三分之一的尝试)在现场机器上工作。当它在实时服务器上失败时 页面重新加载,所有视图状态都丢失了。
我的 webconfig 文件中有一个默认错误捕获,并且该页面永远不会重定向到 错误页面。
一致的错误很容易解决,但这样的问题却不是。
关于什么可以使此页面有时有效,有时无效和/或为什么的任何想法 当它无法工作时,视图状态不会保留吗? 为什么我在本地机器上没有遇到同样的问题?
我尝试合并这两个函数,看看调用外部函数是否导致 问题,但不幸的是它并没有改变任何东西。另外,IsOK 的值似乎不会影响我是否会得到这个错误。
我删除了页面加载功能中的所有代码以确保排除故障 正确,但我仍然遇到同样的问题。
任何想法都会受到赞赏。
编辑:我打算按原样发送,但我决定尝试以下方法:
protected void btnSubmit_Click(object sender, EventArgs e)
{
bool IsOK = true;
lblErrorSending.Visible = false;
if (txtUserName.Text == "" )
{
lblErrorSending.Text = "Please enter your username before sending.";
IsOK = false;
}
lblErrorSending.Visible = !IsOK;
}
如果我在按钮上单击几次,页面确实会丢失视图状态值 经过几次尝试,但并非总是如此。 所以这里的主要问题似乎是视图状态的问题,而不是 一直正常工作。有什么想法吗?
谢谢。
【问题讨论】: