【问题标题】:Change "This page cannot be displayed" to custom page将“此页面无法显示”更改为自定义页面
【发布时间】:2016-10-21 17:42:24
【问题描述】:

我编写了一个通过网络浏览器表单加载页面的应用程序。加载页面是通过 webbrowser_DocumentCompleted 函数中的 webbrowser.navigate 完成的。这工作得很好。但是,如果应用程序没有网络,它会显示“无法显示此页面” - 页面。是否可以改为显示自定义页面,如果可以 - 如何?感谢您的帮助。

【问题讨论】:

    标签: c# asp.net browser offline display


    【解决方案1】:

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

    在您的 app.config 中,您可以使用以下代码:

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

    每当您的应用程序收到 http 错误代码 404 时,它都会重定向到 error.htm 页面

    【讨论】:

      【解决方案2】:

      您可以创建一个自定义错误页面,并将其显示为来自您的web.config 的多个错误状态。

      自定义错误页面:

      当 ASP.NET 应用程序中出现未处理的异常时,会显示以下三种错误页面之一:

      • 异常详情黄屏死机错误页面,
      • 运行时错误黄屏死机错误页面,或

      • 自定义错误页面

      默认情况下,所有类型的错误都会导致显示相同的自定义错误页面。但是,您可以使用 &lt;customErrors&gt; 部分中的 &lt;error&gt; 子元素为特定的 HTTP status code 指定不同的自定义错误页面。例如,要在页面未找到错误(其状态代码为 404)时显示不同的错误页面,请更新 &lt;customErrors&gt; 部分以包含以下标记:

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

      【讨论】:

        【解决方案3】:

        一种方法是处理 WebBrowser 的 Navigated 方法,然后尝试访问 WebBrowser 对象的 Document 对象的 Domain 属性。如果它无法访问域(例如服务器关闭或不存在时),它将引发错误。然后您只需捕获错误并将您自己的 HTML 直接写入 WebBrowser 的 Document 对象,如下所示:

        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
        

        【讨论】:

          猜你喜欢
          • 2011-10-17
          • 2012-12-28
          • 2016-03-31
          • 1970-01-01
          • 2013-12-14
          • 2021-12-31
          • 2022-07-27
          • 2019-09-14
          • 1970-01-01
          相关资源
          最近更新 更多