Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在浏览器后面运行消息框_C#_Asp.net - Fatal编程技术网

C# 在浏览器后面运行消息框

C# 在浏览器后面运行消息框,c#,asp.net,C#,Asp.net,我有一个弹出消息框,我想要的是,当点击时,消息框总是在浏览器前面弹出,但问题是它有时会在浏览器后面弹出。 我能做些什么来确保消息框总是在浏览器前面弹出? 谢谢 是否可以使用MessageBox.Show()的重载,该重载接受IWIN32窗口作为第一个参数?您应该能够将“this”作为第一个参数传递: MessageBox.Show(this, "This appointment is not available. Please choose other date & time.");

我有一个弹出消息框,我想要的是,当点击时,消息框总是在浏览器前面弹出,但问题是它有时会在浏览器后面弹出。 我能做些什么来确保消息框总是在浏览器前面弹出? 谢谢


是否可以使用MessageBox.Show()的重载,该重载接受IWIN32窗口作为第一个参数?您应该能够将“this”作为第一个参数传递:

MessageBox.Show(this, "This appointment is not available. Please choose other date & time.");
但我怀疑这不会有什么帮助,因为如果忽略该参数,它应该选择当前活动的窗口作为父窗口

如果你非常绝望,你可以这样做:

MessageBox.Show
(
    "This appointment is not available. Please choose other date & time.",
    Application.ProductName,
    MessageBoxButtons.OK,
    MessageBoxIcon.Information,
    MessageBoxDefaultButton.Button1,
    MessageBoxOptions.DefaultDesktopOnly
);

但我不推荐使用它-它是一个系统模式对话框,将出现在所有其他应用程序前面。

如果您使用的是Windows窗体调用:

并将
Process.GetCurrentProcess().MainWindowHandle
作为
iwin32窗口所有者传递

相反,如果使用WPF调用:


并将
Application.main窗口
作为
owner
传递,您将Win32消息框与ASP.NET的Response.Redirect混合在一起。因为这篇文章被标记为ASP.NET,而您正在调用Response.Redirect,所以我假设这是一个ASP.NET应用程序,而不是WinForms或WPF应用程序

发生的事情是,消息框在“服务器”上弹出,而浏览器是“客户端”,这在开发人员机器上是相同的。从不从ASP.NET应用程序调用MessageBox.Show。原因是您看到的消息框不是来自浏览器,并且一旦您将其部署到真正的服务器上,客户端将永远看不到消息框,并且您的服务器可能会或可能不会充斥着消息框窗口(取决于正在运行的用户和权限)


要在浏览器中生成“MessageBox”样式的警报,必须使用JavaScript alert()函数。您可以在浏览器呈现的HTML(ASPX)或JS文件上执行此操作,也可以调用ScriptManager.RegisterStartupScript。请查看此问题的答案,了解详细信息:

这不应该发生。很遗憾,您忘记发布显示消息框显示方式的代码。这听起来像是在服务器上显示消息框。“你不能那样做。”青-见斯莱克的评论。下一次,请尽量减少您的代码,我们不需要查看此问题的所有数据库内容。您有一个SQL注入漏洞。您的C代码在服务器上运行。用户从未见过服务器;服务器上的对话框比无用的对话框更糟糕。您需要使用Javascript。
MessageBox.Show
(
    "This appointment is not available. Please choose other date & time.",
    Application.ProductName,
    MessageBoxButtons.OK,
    MessageBoxIcon.Information,
    MessageBoxDefaultButton.Button1,
    MessageBoxOptions.DefaultDesktopOnly
);
public static DialogResult Show(
    IWin32Window owner,
    string text
)
public static MessageBoxResult Show(
    Window owner,
    string messageBoxText
)