【问题标题】:Message box cant be displayed When run in IIS?在 IIS 中运行时无法显示消息框?
【发布时间】:2013-09-03 03:50:13
【问题描述】:

我想显示一个 OK/CANCEL 消息框。我是这样写的。

   if (MessageBox.Show("Are you sure you wants to Save the details ?  ", "Validate", MessageBoxButtons.OKCancel) == DialogResult.OK)
    {
         // do something if "OK "
    }

它在本地运行良好.. 但在 IIS 上显示错误“当应用程序未在 UserInteractive 模式下运行时显示模式对话框或表单不是有效操作。指定 ServiceNotification 或 DefaultDesktopOnly 样式以显示来自服务申请。” 请帮忙。

【问题讨论】:

  • MessageBox 是 Windows GUI 小部件,而不是浏览器小部件。如果您从服务器调用它,它会显示在服务器上,而不是访问者的浏览器上。如果要在客户端显示消息框,则需要使用 HTML 和 Javascript。
  • 由于您正在开发 Web 应用程序,因此不建议您显示模式对话框。相反,您应该使用 javascript 显示确认对话框。
  • 哦,谢谢你 :) 它是如何使用 javascript 的? @zneak @Vishweshwar Kapse

标签: c# javascript asp.net iis


【解决方案1】:

要获得我相信您想要的效果,您需要使用 Javascript confirm() 函数。它通常是这样使用的:

<asp:Button runat="server" OnClientClick="return confirm('Are you sure you want to save the details?')" id="btnSubmit" OnClick="btnSubmit_Click" />

这将在单击按钮时显示一个确认框,如果用户单击“否”、“取消”等,将阻止服务器 OnClick 事件触发。

OnClientClick 将在&lt;input&gt; 标记上呈现为onclick 事件。其余的由浏览器对 Javascript 的处理决定。有关OnClick (OnClientClick) 中代码的返回值作用的更多详细信息,请参阅What's the effect of adding 'return false' to a click event listener?。

以下是使用 Chrome 的 confirm() 返回值的示例。对于第一次执行,我单击了取消。

【讨论】:

  • 不要忘记关闭引号和括号;)
  • 为了完整起见,您可能希望包含按钮的 OnClick 处理程序。目前不见了!!
  • confirm() 会怎样? @jdphenix
  • @ARATHY OnClientClick 将在&lt;input&gt; 标签上呈现为onclick 事件。其余的由浏览器对 Javascript 的处理决定。有关OnClick (OnClientClick) 中代码的返回值作用的更多详细信息,请参阅stackoverflow.com/questions/128923/…。
  • function confirm() { if (confirm("Are you sure you want to save the details??") == true) return true;否则返回假;这是否意味着当返回 true 时它会自动进入 onclick 事件?? @jdphenix
猜你喜欢
  • 2022-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多