2

我有一个带有两个按钮和一个文本的消息框。这是相关代码:

var result = MessageBox.Show("just a text","just a title",MessageBoxButtons.OKCancel,System.Windows.Forms.MessageBoxIcon.Warning,System.Windows.Forms.MessageBoxDefaultButton.Button1, System.Windows.Forms.MessageBoxOptions.ServiceNotification | System.Windows.Forms.MessageBoxOptions.RightAlign);
if (result == DialogResult.OK)
{
    ... code ...
}

我的问题是程序自动在“if”中输入代码,并且弹出消息框甚至没有出现。即使我调试它,我也看到代码转到“if”行,结果是 DialogResult.OK。

我正在使用 Web 表单和 ASP.Net。

MessageBox 的命名空间是“System.Windows.Forms”。

我尝试清除缓存甚至 iisreset。

还有什么可以帮助我?

先感谢您。

4

2 回答 2

7

我正在使用 Web 表单和 ASP.Net。

MessageBox 的命名空间是“System.Windows.Forms”。

不要那样做。MessageBox一个 ASP.NET 站点在服务器上运行,因此即使它会在服务器上弹出,也没有人可以点击它。

如果您想向用户显示弹出窗口,则必须使用 Javascript。请参阅如何在 ASP.NET 中制作一个简单的是/否弹出窗口,将结果返回给我的 c#?.

于 2015-05-04T10:14:39.943 回答
0

这里有两个问题。在代码逻辑中,MessageBox Show方法与主线程是并发的。所以当Show方法运行后立即运行代码,主线程不等待答案!如果你想成为主线程等待关闭消息,你应该使用 MessageBox 的ShowDialog函数。(MSDN 参考

但是现在你在 ASP 中工作,这与 Windows 有很大不同,正如我们亲爱的CodeCaster也说过,ASP 是服务器端而不是客户端!因此,您的消息将显示在服务器系统上,而不是在正在观看您网站的用户系统上!

于 2015-05-04T13:57:23.770 回答