在一个asp.net Windows窗体应用程序,在C#代码后面你可以使用:ASP.NET Web应用程序的消息框
MessageBox.Show("Here is my message");
有一个asp.net web应用程序的任何等同? 我可以从后面的C#代码中调用一些东西,它会向用户显示一个消息框吗?
此示例的用法:我有一个按钮,用于在后面的代码中加载文件。当文件被加载或者如果有错误,我想弹出消息给用户说明结果。
对此的任何想法?
在一个asp.net Windows窗体应用程序,在C#代码后面你可以使用:ASP.NET Web应用程序的消息框
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
不是真的。服务器端代码发生在服务器上---你可以使用javascript在客户端显示某些东西给用户,但显然它只会在客户端执行。这是客户端服务器Web技术的本质。当你得到你的回应时,你基本上与服务器断开连接。
为什么不应该为此使用jQuery弹出窗口。我使用bpopup
来实现此目的。请参阅关于此的更多信息。
http://dinbror.dk/bpopup/
有几个解决方案;如果您熟悉CSS,这里是一个非常灵活的解决方案:
创建一个适当的风格Panel
类似于“消息盒子”,把一个Label
在它和它的Visible
属性设置为false
。然后每当用户需要查看的消息后回传(例如按下按钮),从代码隐藏在Label
小号Text
属性设置为所需的错误消息,并且Panel
的Visible
属性设置为true
。
右键单击解决方案资源管理器,然后选择添加reference.one
对话框将会出现。在那个选择(.net)-> System.windows.form
。进口System.Windows.Forms (vb)
和使用System.windows.forms(C#)
复制此代码,然后写messagebox.show("")
。
-1:WinForms不会帮助Web服务器代码。 – Richard 2013-10-19 10:58:32
Richard是正确的。不要这样做。这将在服务器上显示消息框。 – 2013-11-12 08:17:09
只需将命名空间添加:
System.Windows.forms
到Web应用程序的参考或什么都和你有访问您:
MessageBox.Show("Here is my message");
我想它和它的工作。
祝你好运。
哈哈,不!这将显示服务器上的消息框。 – 2013-11-12 08:16:09
,如果你将包括
System.Windows.forms
的命名空间,然后它会发生冲突。 使用
btn_click()
{
System.Windows.Forms.MessageBox.Show("Hello");
}
不!这将在服务器上显示消息框。 – 2013-11-12 08:16:47
或创建解决方案这样的方法:
public static class MessageBox {
public static void Show(this Page Page, String Message) {
Page.ClientScript.RegisterStartupScript(
Page.GetType(),
"MessageBox",
"<script language='javascript'>alert('" + Message + "');</script>"
);
}
}
然后你可以使用它像:
MessageBox.Show("Here is my message");
只是为了记录。
Here is a link from Microsoft,我认为是提出一个的MessageBox在ASP.Net
最好的办法还它呈现像是和NO选择。
说明如何获得从link制作项目类:
将此代码添加到您的ASPX页面,您要在其中显示消息框:
<asp:Literal ID="PopupBox" runat="server"></asp:Literal>
将此代码添加到您的要进行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文件添加到您的根路径,并且该代码添加到文件:
<link href="~/Styles/MessageBox.css" rel="stylesheet" type="text/css" />
<div id="result"></div>
<asp:ScriptManager runat="server" ID="scriptManager" EnablePageMethods="True">
</asp:ScriptManager> //<-- Make sure you only have one ScriptManager on your aspx page. Remove the one on your aspx page if you already have one.
添加此行对你ASPX页的顶部:
<%@ Register src="~/MessageBoxUserControl.ascx" tagname="MessageBoxUserControl" tagprefix="uc1" %>
将此行添加到您的ASPX页面(里面你ASP:内容标签,如果你有一个)
<uc1:MessageBoxUserControl ID="MessageBoxUserControl1" runat="server" />
保存图像文件1.jpg, 2.jpg, 3.jpg, 4.jpg
从Microsoft Project上方到您的~/Images/
路径。
完成
希望它能帮助。
巴勃罗
这对我来说很有效,它无论如何都是正式的MS解决方案。 – Fandango68 2014-11-04 04:00:06
没有用updatepanel – Somebody 2016-07-14 18:28:32
这个工作适用于VisualStudio 2005和ASP.net 2吗? – Fandango68 2016-11-23 02:50:25
'ASP.net的MessageBox
' 一个ScriptManager添加到ASP.Net页面
<asp:scriptmanager id="ScriptManager1" runat="server" />
尝试:
{
string sMsg = "My Message";
ScriptManager.RegisterStartupScript(Page, Page.GetType, Guid.NewGuid().ToString(), "alert('" + sMsg + "')", true);
}
您需要引用命名空间
using System.Windows.Form;
,然后在代码
protected void Button1_Click(object sender, EventArgs e)
{
MessageBox.Show(" Hi....");
}
错误的做法... – 2015-04-25 20:58:04
加为他人已经指出,一个消息框将是客户方的JavaScript。所以问题是如何从服务器端强制客户端JS消息框。一个简单的解决方案是包括这在HTML:
<script>
var data = '<%= JsData %>';
alert(data);
</script>
,并填补了这一data
从服务器端代码隐藏:
public partial class PageName : Page
{
protected string JsData = "your message";
注意该字符串值应该是一个JavaScript字符串,即是一个单行的,但它可能包含逃脱的换行符\n
。
现在,您可以使用您的所有Javascript或JQuery技能和技巧,在客户端使用该消息文本执行任何操作,例如显示简单的alert()
,如上面的代码示例或复杂的消息框或消息旗帜。
(注意,弹出式窗口有时皱眉和阻塞)
还要注意的是,由于HTTP协议,只能响应于所述用户向服务器发送一个HTTP请求中示出的消息。与WinForm应用程序不同,Web服务器无论何时认为合适,都不能将消息推送给客户端。
如果您只想显示一次消息,而不是在用户使用F5刷新页面后显示消息,则可以使用javascript代码设置和读取cookie。在任何情况下,使用这种方法的好处在于它是从服务器获取数据到客户端上的JavaScript的简单方法,并且您可以使用所有JavaScript功能来完成您喜欢的任何事情。
什么是myStringVariable? – adityawho 2013-03-23 05:11:11
myStringVariable只是一个字符串。它将被设置为您希望显示的消息。 – Gage 2013-03-25 20:02:10
@Gage在事件被触发后,当消息框打开时,用户会看到一个'OK'按钮。无论如何要连接一个Response.Redirect(“desired/path.aspx”);对此? – JsonStatham 2014-07-25 14:30:17