ASP.NET Web应用程序消息框

在asp.net的Windows窗体应用程序中,在C#代码后面你可以使用:

MessageBox.Show("Here is my message"); 

在asp.net Web应用程序中是否有任何等价物? 我可以从后面的C#代码中调用一些可以向用户显示消息框的内容吗?

示例用法:我有一个按钮,可以在后面的代码中加载文件。 加载文件或出现错误时,我想向用户弹出一条消息,说明结果。

有什么想法吗?

您想使用警报。 不幸的是,它不如Windows窗体那么好。

 ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + myStringVariable + "');", true); 

与此问题类似: http : //forums.asp.net/t/1461308.aspx/1

或者在解决方案中创建这样的方法:

 public static class MessageBox { public static void Show(this Page Page, String Message) { Page.ClientScript.RegisterStartupScript( Page.GetType(), "MessageBox", "" ); } } 

然后你就可以使用它:

 MessageBox.Show("Here is my message"); 

仅供记录。

这是Microsoft的链接 ,我认为这是在ASP.Net中呈现MessageBox的最佳方式

它还提供了YesNO等选项。

有关如何从处理项目的链接获取类的说明:

  1. 如果项目中没有App_Code文件夹,请创建它。
  2. 右键单击App_Code文件夹并创建一个Class。 将其命名为MessageBox.cs
  3. MessageBox.cs文件( 从附加的代码 )复制文本并将其粘贴到MessageBox.cs文件中。
  4. MessageBoxCore.cs文件执行与步骤2和3相同的操作。
  5. 重要说明:右键单击每个文件MessageBox.csMessageBoxCore.cs并确保将“Build Action”设置为Compile
  6. 将此代码添加到要在其中显示消息框的aspx页面:

      
  7. 在您要决定的cs页面上添加此代码:

     string title = "My box title goes here"; string text = "Do you want to Update this record?"; MessageBox messageBox = new MessageBox(text, title, MessageBox.MessageBoxIcons.Question, MessageBox.MessageBoxButtons.YesOrNo, MessageBox.MessageBoxStyle.StyleA); messageBox.SuccessEvent.Add("YesModClick"); PopupBox.Text = messageBox.Show(this); 
  8. 将此方法添加到您的cs页面。 这是用户单击“是”时将执行的操作。 您不需要为NoClick方法创建另一个。

     [WebMethod] public static string YesModClick(object sender, EventArgs e) { string strToRtn = ""; // The code that you want to execute when the user clicked yes goes here return strToRtn; } 
  9. WebUserControl1.ascx文件添加到根路径并将此代码添加到文件中:

      
    //<-- Make sure you only have one ScriptManager on your aspx page. Remove the one on your aspx page if you already have one.
  10. aspx页面上添加以下行:

     <%@ Register src="~/MessageBoxUserControl.ascx" tagname="MessageBoxUserControl" tagprefix="uc1" %> 
  11. 在你的aspx页面中添加这一行(如果有的话,在asp:Content标签内)

      
  12. 将上面的Microsoft项目中的图像文件1.jpg, 2.jpg, 3.jpg, 4.jpg保存到~/Images/路径中。

  13. 完成

希望能帮助到你。

巴勃罗

在ASP.NET中创建客户端消息框有几个选项 – 请参阅此处 , 此处和此处 …

并不是的。 服务器端代码正在服务器上发生 – 您可以使用javascript在客户端向用户显示内容,但它显然只会在客户端执行。 这是客户端服务器Web技术的本质。 当您收到回复时,您基本上与服务器断开连接。

为什么不应该为此目的使用jquery弹出窗口。我使用bpopup来实现此目的。请bpopup更多相关信息。
http://dinbror.dk/bpopup/

有一些解决方案; 如果您对CSS感到满意,这是一个非常灵活的解决方案:

创建一个类似于“消息框”的适当样式的Panel ,在其中放置一个Label并将其Visible属性设置为false 。 然后,每当用户需要回发看到消息(例如按下按钮)时,从代码隐藏中将LabelText属性设置为所需的错误消息,并将PanelVisible属性设置为true

‘ASP.net MessageBox

‘将一个脚本管理器添加到ASP.Net页面

  

尝试:

 { string sMsg = "My Message"; ScriptManager.RegisterStartupScript(Page, Page.GetType, Guid.NewGuid().ToString(), "alert('" + sMsg + "')", true); } 

正如其他人已经指出的那样,消息框将是客户端Javascript。 那么问题是如何从服务器端强制客户端JS消息框。 一个简单的解决方案是将其包含在HTML中:

  

并从服务器端代码填充此data

 public partial class PageName : Page { protected string JsData = "your message"; 

请注意,字符串值应该是一个Javascript字符串,即是一个单行,但它可能包含转义换行符\n

现在,您可以使用所有Javascript或JQuery技巧和技巧,在客户端上使用该消息文本执行任何操作,例如显示简单的alert() ,如上面的代码示例所示,或复杂的消息框或消息标题。

(请注意,弹出窗口有时会不受欢迎并被阻止)

另请注意,由于HTTP协议,只能显示消息以响应用户发送到服务器的HTTP请求。 与WinForm应用程序不同,Web服务器无论何时认为合适,都无法将消息推送到客户端。

如果您只想显示消息一次,而不是在用户使用F5刷新页面后,您可以使用javascript代码设置和读取cookie。 在任何情况下,使用此方法的好处是,它是一种从服务器获取数据到客户端上的javascript的简单方法,并且您可以使用所有javascriptfunction来完成您喜欢的任何操作。

如果你愿意的话

 System.Windows.forms 

作为命名空间然后它会冲突。 使用

 btn_click() { System.Windows.Forms.MessageBox.Show("Hello"); } 

您需要引用命名空间


 using System.Windows.Form; 

然后添加代码

 protected void Button1_Click(object sender, EventArgs e) { MessageBox.Show(" Hi...."); } 

右键单击解决方案资源管理器,然后选择添加reference.one 。将出现一个对话框。 在那个选择(.net)-> System.windows.form 。 导入System.Windows.Forms (vb)并使用System.windows.forms(C#)将其复制到编码中,然后编写messagebox.show("")

只需添加命名空间:

 System.Windows.forms 

您的Web应用程序参考或任何内容,您可以访问您的:

 MessageBox.Show("Here is my message"); 

我尝试过它并且有效。

祝好运。