如何在Web应用程序中显示错误消息框asp.net c#

zoh*_*air 8 c# asp.net web-applications messagebox

我有一个ASP.NET Web应用程序,我想知道如何在抛出异常时显示错误消息框.

例如,

        try
        {
            do something
        }
        catch 
        {
            messagebox.write("error"); 
            //[This isn't the correct syntax, just what I want to achieve]
        }
Run Code Online (Sandbox Code Playgroud)

[消息框显示错误]

谢谢

tva*_*son 13

您无法在客户端的计算机或服务器上合理地显示消息框.对于客户端的计算机,您将需要重定向到包含相应错误消息的错误页面,如果需要,可能包括异常消息和堆栈跟踪.在服务器上,您可能希望对事件日志或日志文件进行一些日志记录.

 try
 {
     ....
 }
 catch (Exception ex)
 {
     this.Session["exceptionMessage"] = ex.Message;
     Response.Redirect( "ErrorDisplay.aspx" );
     log.Write( ex.Message  + ex.StackTrace );
 }
Run Code Online (Sandbox Code Playgroud)

请注意,上面的"日志"必须由您实现,可能使用log4net或其他一些日志记录实用程序.


Mic*_*eem 12

您不能只调用messagebox.write,因为您与客户端断开连接.您应该注册显示消息框的javascript代码:

this.RegisterClientScriptBlock(typeof(string), "key",  string.Format("alert('{0}');", ex.Message), true);
Run Code Online (Sandbox Code Playgroud)


Per*_*hik 5

我过去执行此操作的方法是在引发异常时用信息填充页面上的某些内容。MessageBox 适用于 Windows 窗体,不能用于 Web 窗体。我想你可以在页面上放置一些 javascript 来发出警报:

Response.Write("<script>alert('Exception: ')</script>");
Run Code Online (Sandbox Code Playgroud)


Ram*_*esh 5

使用MessageBox.Show()将导致在服务器中显示一个消息框,并阻止线程处理进一步的请求,除非该框已关闭.

你能做的是,

this.Page.ClientScript.RegisterStartupScript(this.GetType(),"ex","alert('" + ex.Message + "');", true);
Run Code Online (Sandbox Code Playgroud)

这将在客户端显示异常,前提是异常未冒泡.