大家;我在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);
}
}
问题是,在我引发异常并修复页面中的数据后,我再次单击“保存”按钮并保存,但在它再次向我显示异常消息及其烦人之前。即使保存了数据,我再次单击它再次显示异常消息。
你知道这个问题的答案吗?
答案 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);
}