我在页面加载事件中调用方法DoSomething():
protected void Page_Load(object sender, EventArgs e)
{
try
{
DoSomething();
}
catch
{
Server.Transfer('~/Error.aspx');
}
}
现在问题是DoSomething
如果不满足某些条件,Server.Transfer
也会Error.aspx
,同时如果我的Page_Load
也会抛出异常,那么Server.Transfer
也会Server.Transfer
1}}。
现在我在浏览器中显示重复的错误页面。
如何阻止它?
无论我写{{1}} 5我都想要时间,它应该只显示错误页面一次,而不是在1页中显示重复的页面。
答案 0 :(得分:1)
嗯.. DoSomthing()应该返回一个布尔值,告诉你它是否已经发出了服务器传输?
protected void Page_Load(object sender, EventArgs e)
{
bool serverTransferToErrorPage;
try
{
serverTransferToErrorPage = DoSomething();
// some more code that may throw execpetions..
// ...
// ...
}
catch
{
if(!serverTransferToErrorPage)
Server.Transfer('~/Error.aspx');
}
}
当然,你的“DoSomthing()”方法看起来应该是这样的:
private bool DoSomthing()
{
try
{
return false;
}
catch
{
Server.Transfer('~/Error.aspx');
return true;
}
}