Asp.net 如何确定生成错误的母版页?

Asp.net 如何确定生成错误的母版页?,asp.net,error-handling,webforms,master-pages,Asp.net,Error Handling,Webforms,Master Pages,我们有一个大型ASP WebForms应用程序,我正在努力使错误页面看起来更好,更有用。我们有几个母版页,其中一个用于在通过JavaScript打开的模式窗口中显示iframe中的内容。现在,如果其中一个模式页面出现错误,则模式iframe将被重定向到我们的~/error.aspx页面,其中包含正常的站点设计-位于站点设计顶部的模式内部。它看起来很傻 我想做的是确定生成错误的页面的母版页,然后更改错误页面的母版页,这样它就不会从iframe内部重复设计。这可能吗?经过大量调试后,我似乎找到了一种

我们有一个大型ASP WebForms应用程序,我正在努力使错误页面看起来更好,更有用。我们有几个母版页,其中一个用于在通过JavaScript打开的模式窗口中显示iframe中的内容。现在,如果其中一个模式页面出现错误,则模式iframe将被重定向到我们的
~/error.aspx
页面,其中包含正常的站点设计-位于站点设计顶部的模式内部。它看起来很傻


我想做的是确定生成错误的页面的母版页,然后更改错误页面的母版页,这样它就不会从iframe内部重复设计。这可能吗?

经过大量调试后,我似乎找到了一种在VB中实现我想要的功能的方法,尽管它有点不成熟

Public子应用程序\u错误(ByVal发送方作为对象,ByVal e作为事件参数)
'尝试确定此错误是否来自模式中显示的页面
Dim page=TryCast(HttpContext.Current.CurrentHandler,_BasePage)
如果页面不是空的,那么
Dim masterPageFile作为字符串=page.masterPageFile
我们在这里能做的最好的事情就是找到母版页,看看它是否
'包含字符串“modal”,因为这通常是我们命名这些东西的方式
如果不是String.IsNullOrWhiteSpace(masterPageFile)和masterPageFile.Contains(“modal”,StringComparison.OrdinalIgnoreCase),那么
'==============
“我们做到了!!!
'==============
如果结束
其他的
'HttpContext.Current.CurrentHandler'或'Page'都是'Nothing',因此这可能是404或其他错误。
让我们看看是否有其他方法来确定我们是否处于模态。
Dim pathToAttemptedFile=HttpContext.Current.Request.Path
Dim ReferreUrl=HttpContext.Current.Request.UrlReferrer.AbsolutePath
If(不是String.IsNullOrWhiteSpace(pathtoattedFile)和also pathtoattedFile.Contains(tokenInUrlPath,StringComparison.ordinallingorecase))或lse
(不是String.IsNullOrWhiteSpace(refererUrl)也不是refererUrl.Contains(tokenInUrlPath、StringComparison.OrdinalIgnoreCase)),然后
'==============
“我们做到了!!!
'==============
如果结束
如果结束
端接头