Html.ActionLink:弹出式窗口(自定义),然后重定向

时间:2019-03-14 13:17:08

标签: javascript c# jquery asp.net asp.net-mvc

我想在用户单击按钮时显示弹出窗口(已经使用Html.ActionLink-旧代码;弹出窗口仅显示会话变量是否等于某个值...这部分已经确定了),然后重定向或返回新视图(在控制器中完成)。

我有Html.ActionLink(<button name>, <controller>, <action>),在这里得到其他答案的帮助下,我制作了Html.ActionLink(<button name>, <controller>, <action>, null, new { onlick: 'myPopup();'}),其中myPopup()是创建qjuery modal popup的函数。

但是我的问题是有时弹出窗口甚至不显示或仅显示几秒钟。我认为这是因为javascript异步且控制器速度更快,因此它会在执行javascript代码之前返回。有谁知道如何先执行javascript代码,然后执行控制器代码。

我尝试Html.ActionLink(<button name>, <controller>, <action>, null, new { onlick: 'myPopup();return false;'}),因为return false应该停止默认行为(重定向到Controller / Action),然后在jQuery代码中,当单击弹出窗口中的按钮OK时,我将ajax重定向到控制器。但是问题是我似乎无法完成这项工作,这甚至可能是错误的方式?

任何建议如何添加此功能?

1 个答案:

答案 0 :(得分:0)

嗨,欢迎来到SO:)

您需要在myPopup()函数中处理重定向。假设您的模态中有一个“继续”按钮。一种可能的方法是-

$('#actionLinkId').click(function (e) {
    e.preventDefault();

    var link = $(this).attr('href');
    $('#continue').attr('href', link);

    $('#yourModalId').modal();
});