如何在ASP.NET Web应用程序中显示Windows.Form.MessageBox?

我想在MessageBox中显示我的validation错误消息。 我有四个TextBoxes和一个Button控件。 当我单击Button Control时,没有文本的TextBox会在MessageBox中显示。 我差不多完成了这个,但问题是当我单击Button时,MessageBox作为最小化窗口打开。 因此最终用户很难意识到。 我想在按钮点击时向用户显示MessageBox。

这是我的代码,在Button Click事件中

ErrorMsg=""; if (TextBox1.Text == "") { ErrorMsg += "Name is required!"; ErrorMsg += "\n"; } if (TextBox2.Text == "") { ErrorMsg += "Address is required!"; ErrorMsg += "\n"; } if (TextBox3.Text == "") { ErrorMsg += "Phone No. is required!"; ErrorMsg += "\n"; } if (TextBox4.Text == "") { ErrorMsg += "City is required!"; ErrorMsg += "\n"; } if (ErrorMsg.Length == 0) { //Some Code } else { MessageBox.Show(ErrorMsg, "Existing Address", MessageBoxButtons.OK, MessageBoxIcon.Error); } 

提前致谢…

您不能在ASP.NET应用程序中使用Windows MessageBox。 它没有意义。 ASP.NET会发出HTML / javascript / CSS,因此您应该使用它来通知用户出现了问题。 因此,例如在ASP.NET应用程序中,您可以使用RegisterStartupScript方法将javascript注入页面,该页面将在加载页面时执行并使用alert函数:

 ScriptManager.RegisterStartupScript(this, GetType(), "error", "alert('oops');", true); 

在ASP.NET应用程序中执行validation的其他更传统的技术涉及使用validation控件 。

创建一个类似的函数

 private void MessageBoxShow(Page page, string message) { Literal ltr = new Literal(); ltr.Text = @""; page.Controls.Add(ltr); } 

并从任何.aspx页面调用它

 MessageBoxShow(this,message); 

重要的是,如果使用UserControl,则需要将函数参数Page更改为UserControl。

为什么不直接使用Ajax控件工具包 ?

然后你可以调整弹出窗口的内容,我相信它比windows风格的弹出消息更少侵入。

我们可以使用Windows消息框即使在ASP.Net WEB应用程序需要执行以下步骤

  1. 在Visual Studio中打开解决方案资源管理器,右键单击“参考”>“添加参照”
  2. 搜索system.windows和system .windows.form程序集并添加它们
  3. 然后在你的.aspx表单中你想使用消息框添加程序集使用system.windows和system.windows.form然后你可以在你的网页中使用所有function,如Windows应用程序