我写了一个通过webbrowser表单加载页面的应用程序。加载页面是通过webbrowser_DocumentCompleted函数中的webbrowser.navigate完成的。这非常有效。但是如果应用程序没有网络,则显示"此页面无法显示" - 页面。是否可以显示自定义页面,如果是 - 如何?谢谢你的帮助。
答案 0 :(得分:0)
您可以在应用程序启动时执行网络检查,如果失败,您可以将其重定向到错误页面吗?
在app.config中,您可以使用以下代码: <system.web>
<customErrors>
<error statusCode="404" redirect="error.htm"/>
</customErrors>
只要您的应用程序收到http错误代码404,它就会重定向到error.htm页面
答案 1 :(得分:0)
该页面由您的浏览器提供,不应用程序,所以不,您无法更改它。
但是,您可以执行的操作是读取Web浏览器返回的HTML,检查它是否没有说明并采取相应措施。
示例:
//document completed function declaration
{
if (yourWebBrowser.Document.InnerHtml.Contains("This page cannot be displayed")
{
//Do Something
}
}
答案 2 :(得分:0)
Yo可以创建一个自定义错误页面,并显示来自web.config
的多个错误状态。
自定义错误页面
当ASP.NET应用程序中出现未处理的异常时,会显示以下三种类型的错误页面之一:
运行时错误黄色死亡屏幕错误页面,或
自定义错误页面
默认情况下,所有类型的错误都会导致显示相同的自定义错误页面。但是,您可以使用HTTP status code
部分中的<error>
子元素为特定<customErrors>
指定其他自定义错误页面。例如,要在页面未找到错误时显示不同的错误页面,其HTTP
状态代码为404
,请更新<customErrors>
部分以包含以下标记:
<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx">
<error statusCode="404" redirect="~/ErrorPages/404.aspx" />
</customErrors>
答案 3 :(得分:0)
一种方法是处理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