在C#中,msgbox没有显示

时间:2012-12-19 02:17:02

标签: msgbox

下面是我在C#中的代码的一部分,它假设发送电子邮件,显示msg框,然后直接到'Multihotelbook.aspx'页面,但直接到页面而不显示msgbox。我不知道为什么。需要帮助

emailClient.Send(消息);

                // Response.Write("<script>window.alert('Email sent')</script>");
                //ClientScript.RegisterStartupScript(typeof(Page), "myscript", "<script>alert('Email sent');</script>");
                // System.Windows.Forms.MessageBox.Show("Email sent");
               // MessageBox.Show("Email sent");
               // MessageBoxResult result = MessageBox.Show("Email sent", "Confirmation");


            //ClientScript.RegisterStartupScript(typeof(Page), "myscript", "<script>alert('Email sent');</script>");
            //ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "confirm('Email sent');", true);
            //ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "KEY", "alert('Email sent')", true);
            Page.ClientScript.RegisterStartupScript(typeof(string), "alert", "<script>alert('Email sent')</script>");
            Response.Redirect("Multihotelbook.aspx");

1 个答案:

答案 0 :(得分:0)

这......看起来像ASP.NET代码。 ASP.NET中没有MessageBox。请注意,您必须完全引用System.Windows.Forms,我想您也必须添加它作为参考。 Windows窗体和ASP.NET是两个非常不同的东西。

你到底想要完成什么?显示JavaScript alert()?如果是这种情况,那么您可以在响应中包含一些额外的JavaScript代码。

除了......你也是这样做的:

Response.Redirect("Multihotelbook.aspx");

这意味着对客户端的响应被标题所破坏,该标题告诉客户端转到Multihotelbook.aspx。因此,客户端永远不会在响应中看到您包含的任何其他内容,基本上是RegisterStartupScript中的任何内容。

执行此代码后,客户端将以Multihotelbook.aspx结束。除非该页面上有JavaScript alert(),否则浏览器不会显示一个。

您可以尝试的一种方法是将标记传递给Multihotelbook.aspx,例如Multihotelbook.aspx?emailSent=true,并在该页面的Page_Load中检查该值,如果设置为true,在页面中包含JavaScript代码以显示alert()(可能正在尝试使用RegisterStartupScript)。