一些需要思考的场景。有一个遗留代码具有以下实现示例 1 和示例 2。如果我们尝试实现MSDN 推荐,那么遗留代码就会失败。
这是一个旧代码示例:
示例 1:
无效页面加载(){
....一些代码
如果(条件){
/// 一些条件
} 别的 {
重定向页面(网址);
}
// 另一个代码块
// 一些其他条件。
}
示例 2:
一种。文件1.ascx
无效页面加载(){
尝试 {
..一些代码
base.CheckPreference();
重定向页面(默认页面);
}
捕捉(异常前){
ExceptionHandling.GetErrorMessage(ex);
}
}
湾。BaseClass.cs // 这是基类
无效检查偏好(){
尝试 {
如果(条件){
重定向页面(url1);
}否则如果(条件2){
重定向页面(url2);
} 别的 {
// 更新会话
}
}
捕捉(异常前){
ExceptionHandling.GetErrorMessage(ex);
扔;
}
}
无效重定向页面(字符串网址){
响应。重定向(网址);
}
一种可能的方法是在类中添加一个布尔字段,例如 endExecution,在调用 RedirectPage 时将该字段设置为 true。
我们必须更新 RedirectPage 代码,请参见下面的代码片段:
// 更新代码 - MSDN 推荐。
无效重定向页面(网址){
Response.Redirect(url, false);
this.Context.ApplicationInstance.CompleteRequest();
结束执行=真;
}
请提出一些其他更好的方法来改进遗留代码的实现。