代码是这样的:
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;
}
}
由于某种原因,它不能在实时服务器上始终如一地工作。请记住,它总是在我的本地开发机器上工作,有时(大约 3 次尝试中的 1 次)在现场机器上工作。当它在实时服务器上失败时,页面会重新加载并且所有视图状态都会丢失。
我的 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;
}
如果我在按钮上单击几次,则在几次尝试后页面确实会丢失视图状态值,但并非总是如此。因此,这里的主要问题似乎是视图状态始终无法正常工作的问题。任何的想法?
谢谢。