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的最佳方式
它还提供了Yes和NO等选项。
有关如何从处理项目的链接获取类的说明:
- 如果项目中没有App_Code文件夹,请创建它。
- 右键单击App_Code文件夹并创建一个Class。 将其命名为MessageBox.cs
- 从MessageBox.cs文件( 从附加的代码 )复制文本并将其粘贴到MessageBox.cs文件中。
- 对MessageBoxCore.cs文件执行与步骤2和3相同的操作。
- 重要说明:右键单击每个文件MessageBox.cs和MessageBoxCore.cs并确保将“Build Action”设置为Compile
-
将此代码添加到要在其中显示消息框的aspx页面:
-
在您要决定的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);
-
将此方法添加到您的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; }
-
将WebUserControl1.ascx文件添加到根路径并将此代码添加到文件中:
-
在aspx页面上添加以下行:
<%@ Register src="~/MessageBoxUserControl.ascx" tagname="MessageBoxUserControl" tagprefix="uc1" %>
-
在你的aspx页面中添加这一行(如果有的话,在asp:Content标签内)
-
将上面的Microsoft项目中的图像文件
1.jpg, 2.jpg, 3.jpg, 4.jpg
保存到~/Images/
路径中。 -
完成
希望能帮助到你。
巴勃罗
在ASP.NET中创建客户端消息框有几个选项 – 请参阅此处 , 此处和此处 …
并不是的。 服务器端代码正在服务器上发生 – 您可以使用javascript在客户端向用户显示内容,但它显然只会在客户端执行。 这是客户端服务器Web技术的本质。 当您收到回复时,您基本上与服务器断开连接。
为什么不应该为此目的使用jquery弹出窗口。我使用bpopup
来实现此目的。请bpopup
更多相关信息。
http://dinbror.dk/bpopup/
有一些解决方案; 如果您对CSS感到满意,这是一个非常灵活的解决方案:
创建一个类似于“消息框”的适当样式的Panel
,在其中放置一个Label
并将其Visible
属性设置为false
。 然后,每当用户需要在回发后看到消息(例如按下按钮)时,从代码隐藏中将Label
的Text
属性设置为所需的错误消息,并将Panel
的Visible
属性设置为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");
我尝试过它并且有效。
祝好运。