如何在 ASP.net4.0 中使用 try & catch 块显示代码中出现的错误消息(弹出窗口)?
问问题
6896 次
3 回答
3
这是一个 C# 版本。创建一个在页面中显示弹出窗口的函数
<script type="text/javascript">
function displayPopup(message)
{
//code to display popup here
}
</script>
使用从代码隐藏生成的脚本调用此方法
try
{
//your code here
}
catch(Exception ex)
{
string script = "<script type=\"text/javascript\"> displayPopup('"+ex.Message+"'); </script>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", script);
}
VB
Try
'Your code here
Catch ex As Exception
Dim script As String = "<script type=""text/javascript""> displayPopup('" & ex.Message & "'); </script>"
ClientScript.RegisterClientScriptBlock(Me.[GetType](), "myscript", script)
End Try
于 2012-09-20T06:11:45.000 回答
0
你不能直接做
因为
1)当您的页面未呈现时,代码后面的错误出现在服务器端错误。2) Asp.Net 作为一个断开连接的模型工作,因此它首先在服务器端构建页面然后渲染。如果我们想显示客户端(javascript)的弹出窗口,我们可以在服务器端编写事件以在使用 javascript 方法在客户端渲染和加载页面时显示弹出窗口。
因此,您必须在服务器端发生错误时生成脚本,并将其注册到客户端脚本,例如
string script = "<script type=\"text/javascript\"> window.alert('"+ex.Message+"'); </script>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "alertscript", script);
RegisterClientScriptBlock 将直接在页面上编写脚本,以便在渲染时执行这些脚本,您可以看到错误警报。
您可以编写自定义 javascript 函数并在脚本中调用该函数而不是警报来显示自定义弹出窗口。
于 2012-09-20T07:06:32.357 回答
0
你可以这样做
catch (Exception ex)
{
string message = string.Format("Message: {0}\\n\\n", ex.Message);
message += string.Format("StackTrace: {0}\\n\\n", ex.StackTrace.Replace(Environment.NewLine, string.Empty));
message += string.Format("Source: {0}\\n\\n", ex.Source.Replace(Environment.NewLine, string.Empty));
message += string.Format("TargetSite: {0}", ex.TargetSite.ToString().Replace(Environment.NewLine, string.Empty));
ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"" + message + "\");", true);
}
于 2016-08-30T12:18:24.403 回答