将"This page cannot be displayed"更改为自定义页面



我编写了一个通过WebBrowser表单加载页面的应用程序。加载页面是通过webbrowser.navigate在webbrowser_documentCompleted函数中完成的。这效果很好。但是,如果应用程序没有网络,它将显示"无法显示此页面" - 页面。是否可以改用自定义页面显示,如果是的话 - 如何?谢谢您的帮助。

您可以在应用程序开始时执行网络检查,如果失败,则可以将其重定向到您的错误页面?

app.config中的其他方式您可以使用以下代码:

 <system.web>
<customErrors>
  <error statusCode="404" redirect="error.htm"/>
</customErrors>

每当您的应用程序接收到HTTP错误代码404时,它将重定向到错误。

yo可以创建一个自定义错误页面,并从您的web.config中显示多个错误状态。

自定义错误页面:

当在ASP.NET应用程序中出现未经治疗的异常时,显示了三种类型的错误页面之一:

  • 例外细节死亡错误页面的黄色屏幕,
  • 运行时错误死亡错误页面或

  • 自定义错误页面

默认情况下,所有类型的错误都会导致显示相同的自定义错误页面。但是,您可以使用<customErrors>部分中的<error>儿童元素为特定的HTTP status code指定另一个自定义错误页面。例如,要在未找到页面错误的情况下显示不同的错误页面,该页面具有HTTP状态代码404,请更新<customErrors>部分以包括以下标记:

<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx">
    <error statusCode="404" redirect="~/ErrorPages/404.aspx" />
</customErrors>

做到这一点的一种方法是处理WebBrowser的导航方法,然后尝试访问WebBrowser对象的文档对象的域属性。如果它无法访问该域(例如服务器下降或不存在时),则会丢弃错误。然后,您只需要捕获错误,然后将自己的HTML直接写入WebBrowser的文档对象:

Private Sub WebBrowser1_Navigated(sender As Object, e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
    Dim doc As HtmlDocument = WebBrowser1.Document
    Try
        Dim s As String = doc.Domain
    Catch ex As Exception
        WebBrowser1.Document.Write("<html><body><br/><h1>The site you are trying to reach is offline or hasn't been set up yet. Please contact your system administrator.</h1></body></html>")
    End Try
End Sub

相关内容

  • 没有找到相关文章

最新更新