Web应用程序中的消息框

时间:2015-06-04 18:53:39

标签: c# asp.net .net messagebox

我正在使用消息框警报,它在开发时可以正常工作,但在部署和发布时

    System.Windows.Forms.DialogResult result2 = System.Windows.Forms.MessageBox.Show("msg :\n" + check + "",
    "Warning",
    System.Windows.Forms.MessageBoxButtons.OK,
    System.Windows.Forms.MessageBoxIcon.Question);

    if (result2 == System.Windows.Forms.DialogResult.OK)
    {
        Response.Redirect("xxx.aspx?acname=" + AN + "&bidref=" + BN + "", true);
    }

我得到这个错误

当应用程序未在UserInteractive模式下运行时显示模式对话框或表单不是有效操作。指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.InvalidOperationException:当应用程序未在UserInteractive模式下运行时显示模式对话框或窗体不是有效操作。指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知。

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

[InvalidOperationException:当应用程序未在UserInteractive模式下运行时显示模式对话框或表单不是有效操作。指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知。]    System.Windows.Forms.MessageBox.ShowCore(IWin32Window owner,String text,String caption,MessageBoxButtons buttons,MessageBoxIcon icon,MessageBoxDefaultButton defaultButton,MessageBoxOptions options,Boolean showHelp)+4551083    System.Windows.Forms.MessageBox.Show(String text,String caption,MessageBoxButtons buttons,MessageBoxIcon icon)+52    Checklist.Button1_Click(Object sender,EventArgs e)+6665    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+155    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+3804

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.34248

2 个答案:

答案 0 :(得分:0)

您正在尝试使用适用于Windows Forms 应用程序的MessageBox,而不是 Web 应用程序。两个平台的接口完全不同。

答案 1 :(得分:0)

您正在使用的消息框控件用于Windows桌面应用程序,换句话说,它在交互模式下运行,这意味着对话框仅在代码运行的机器上弹出,所以在您的情况下,如果您查看承载您的Web应用程序的服务器,您可以看到它弹出。

所以基本上你需要使用基于Web的对话框,你可以尝试使用Jquery对话框,它非常易于使用,请查看here以获取演示和代码示例。

如果它能解决您的问题,请将其标记为答案。