如何在asp.net程序集中添加winform的选择框(确定,取消)

本文探讨了在 WinForm 中使用 MessageBox 的局限性,特别是在 Web 应用环境中遇到的问题。当 MessageBox 被部署到 IIS 上时,由于 SystemInformation.UserInteractive 属性返回 false,无法显示对话框。文章还提到了 Web 应用中实现弹窗的替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        单纯的在winform中弹框其实是蛮简单的,下面我就来介绍一下弹winform窗口的,
               System.Windows.Forms.DialogResult result =
                     System.Windows.Forms.MessageBox.Show("你确定要删除吗?", "是否删除",
                        System.Windows.Forms.MessageBoxButtons.OKCancel);

                if (result == System.Windows.Forms.DialogResult.OK) //*确认了*/ 
                {
                    //确认后的代码;
                    Log.WriteSCHLog(Session["LoginName"].ToString() + "删除操作!");
                }
                else
                {
                    //取消得代码 
                    Log.WriteSCHLog(Session["LoginName"].ToString() + "取消删除操作");
                    return;
                }

     这样,在VS运行的时候就能弹出一个对话框(这里就不放图了),

      但是。。。。

      这仅仅是在本机运行的时候,然后部到IIS上面的时候,就会报错。然后弹窗是不会弹出来的

当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。

     这是为什么呢?

      因为MessageBox是属于Winform的在服务器端执行也是在服务器上产生对话框  ,调试的时候如果是本机当服务器就可以正常运行

       但是部署到iis上面,本机不是服务器了,当然也就不会弹窗了。

     SystemInformation.UserInteractive属性  
 获取一个值,该值指示当前进程是否在用户交互模式中运行。
 如果 UserInteractive 属性为 false 时,则不显示任何模式对话框或消息框,原因是没有供用户进行交互的图形用户界面。
 并且仅当从服务进程或从 Web 应用程序调用时,此属性才为 false。所以在iis上面调用时,她的属性值恒为false。

  注意:  
 此属性仅在下面的平台上受支持:Windows NT 3.51 或更高版本、Windows 2000、Windows XP 和 Windows Server 2003 系列。

    所以,在web中使用Message.Show()以及SaveFileDialog类

    是不会弹框的。

   那web中怎么弹窗呢?一个很简单的方法就是

javascript:return confirm('你确定删除吗?')
  但是因为业务复杂性,也会有这样或者那样的问题,下一篇,我将详细介绍js中弹窗使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值