【问题标题】:MVC ActionLink calling multiple JQuery functionsMVC ActionLink 调用多个 JQuery 函数
【发布时间】:2018-04-19 15:22:59
【问题描述】:

我正在尝试调用确认,然后从 MVC 操作链接调用警报功能,但我被卡住了。代码如下:

我的观点有以下actionlink:

@Html.ActionLink("JQuery Testing", "BuildProject", Model, new { onclick = " return ConfirmProjectSubmit()" })

调用控制器将项目保存到数据库。我正在尝试在单击时发出确认声明。执行该操作后,将调用以下操作:

return RedirectToAction("ProjectDetails", "Project", new RouteValueDictionary(new { id = currentProject.Id, msg = message }));

提醒用户该项目已实际创建。

然后在我的视图底部:

@section scripts {
<script type="text/javascript">
        function ConfirmWorkflowSubmit() {
            $.confirm({
                title: 'Confirm!',
                content: 'Simple confirm!',
                buttons: {
                    confirm: function () {

                    },
                    cancel: function () {

                    }
                }
            });
        return false;
        };
</script>

@if (ViewBag.message != null)
{
    <script type="text/javascript">
     $(document).ready(function () {
        $.alert({
            title: 'Workflow successfully created',
            content: '@ViewBag.message',
            type: 'green',
            });
        });
    </script>
}
}

这两个动作都在触发,但不正确。我对 MVC 和 Jquery 比较陌生。基本上我需要弄清楚如果用户不确认如何不提交,然后确保消息只在返回的路上弹出。我想我只是需要帮助来正确订购我拥有的东西。

提前致谢。

编辑。好的,所以我看到了问题的一部分。实际提交表单的不是 $confirm 函数,而是打开对话框后单击的按钮操作。我真的被困在这里,这必须比我做的更容易。救命!

【问题讨论】:

  • 尝试将事件传递给函数,看起来像function(event){...} 将它传递给cancel: function(event) 然后使用event.preventDefault();
  • 对不起,你能不能把它说得低一点。

标签: c# jquery asp.net-mvc


【解决方案1】:

我并不是说你不能按照你的方式做,但这通常是我设置绑定的方式:

$(document).ready(function () 
{
    // add the e here -- it is the event which initiated the binding
    $(".buildButton").on("click", function (e) 
    {
        if (ConfirmProjectSubmit())
        {
            alert('confirm');

        }
        else
        {
            // e.preventDefault() cancels the click action
            e.preventDefault();
            alert('cancel');
        }
    });
});
function ConfirmProjectSubmit()
{
    // some confirm logic
    // return true for confirmed, false for cancelled
    return false;
}

删除您操作中的onclick。不需要 jQuery 绑定 onClick。

这是一个大纲,你可以在不同的地方添加你的逻辑来完成它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-21
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2011-12-12
    • 2013-06-14
    • 2011-08-18
    相关资源
    最近更新 更多