【问题标题】:Using JQuery dialog to redirect on confirm when the redirect call is within a button click event当重定向调用在按钮单击事件中时,使用 JQuery 对话框在确认时重定向
【发布时间】:2018-01-08 10:59:51
【问题描述】:

我开始相信这是不可能的,但我想在放弃这个想法之前先问问。我想要一个带有单击事件的 asp 按钮控件,单击该控件时会将用户重定向回各种菜单(取决于页面)但是,我想显示 JQuery 对话框以让用户确认以便他们理解不会保存更改。

我不想使用 JavaScript 或 Jquery 来调用重定向(这就是为什么我认为这是不可能的),因为 URL 将会改变并且我被告知传入就安全性而言,指向 javascript 重定向的 URL 是一个很大的禁忌。

这真的可能吗?我已经尝试从对话框返回,但由于它是异步的,并且重定向在它甚至打开之前发生。

这就是我所拥有的:

         $(function () {          
             $("#dialog-confirm").dialog({
                 autoOpen: false,
                 resizable: false,
                 height: "auto",
                 width: 400,
                 modal: true,
                 buttons: {
                     "Confirm": function () {
                         $(this).dialog("close");
                     },
                     Cancel: function () {
                         $(this).dialog("close");
                     }
                 }
             });

             $(".exit-button").click(function () {
                 $("#dialog-confirm").dialog("open");
             });            
         });

【问题讨论】:

  • “在安全性方面将 URL 传递给 javascript 重定向是一个很大的禁忌。”为什么? Javascript 当然可以将用户发送到另一个页面。是因为您想包含一些必须进入查询字符串的数据吗?您可能想要做的是使对话框的“确认”按钮导致页面以等效状态回发,就像按钮直接回发一样。我认为谷歌上有一些东西已经展示了如何使用网络表单来做到这一点(比它应该的更复杂,因为网络表单的工作方式令人费解)

标签: c# jquery asp.net redirect webforms


【解决方案1】:

有一个解决方法。您可以有一个服务器按钮并在其上放置一个 css 类以使其隐藏。并放置一个客户端按钮,单击此客户端按钮,您将显示对话框。在对话框中点击确认按钮可以通过jquery[$("#server-button-click-id").click();]触发服务器按钮的点击。

【讨论】:

  • 您好,感谢您提供的替代方法,我确信它会很好用。不过,我现在决定使用 ADyson 的方法,但我越来越倾向于创建自己的自定义弹出对话框。
猜你喜欢
  • 1970-01-01
  • 2021-07-04
  • 1970-01-01
  • 2017-03-07
  • 2020-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
相关资源
最近更新 更多