-1

下面是我在 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");
4

1 回答 1

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()浏览器不会显示 JavaScript。

您可以尝试的一种方法是将标志传递给Multihotelbook.aspx,类似于Multihotelbook.aspx?emailSent=true和 在该Page_Load页面检查该值,如果设置为 true,则在页面中包含 JavaScript 代码以显示alert()(可能RegisterStartupScript像您已经尝试过的那样使用)。

于 2012-12-19T02:27:11.400 回答