asp.net中令人讨厌的异常

时间:2008-12-03 18:29:29

标签: c# asp.net

大家;我在asp.net中有这个问题,我有一个页面,我插入和修改数据,在保存之前我做了一个验证,如果它通过我保存数据,但如果不是我引发一个异常并显示它,该功能是这样的;

protected void btnSave_Click(object sender, EventArgs e)
{
try
{
...
if(ValidData())
  //Save
  ...
else
  throw new Exception("Invalid data");
}
catch(Exception ex)
{
  // Javascript alert
  JSLiteral.Text = Utilities.JSAlert(ex.Message);
}
}

问题是,在我引发异常并修复页面中的数据后,我再次单击“保存”按钮并保存,但在它再次向我显示异常消息及其烦人之前。即使保存了数据,我再次单击它再次显示异常消息。

你知道这个问题的答案吗?

6 个答案:

答案 0 :(得分:1)

保存后,您是否将JSLiteral的值重置为空?

答案 1 :(得分:1)

关闭jSLiteral控件的viewstate。

答案 2 :(得分:1)

如果JSLiteral是服务器端控件并且它正在使用视图状态。然后,当保存成功时,您需要清除控件的状态。

您可以禁用控件的视图状态,如JSLiteral.EnableViewState = false;

答案 3 :(得分:0)

邮件是否保存在文字的视图状态中?

如果数据有效,则明确将文字文本设置为空。

答案 4 :(得分:0)

我最初的猜测是ViewState会记住错误消息。尝试在JSLiteral控件上禁用ViewState。

答案 5 :(得分:0)

投掷&在同一个函数中捕获异常基本上是没有意义的(异常是为了跨越调用级别)。如果你把它写成:

,一切都可能会更好
if(ValidData())
{
  //Save
}
 else
{  // Javascript alert
  JSLiteral.Text = Utilities.JSAlert(ex.Message);
}