MVC ActionLink调用多个JQuery函数

时间:2018-04-19 15:23:00

标签: c# jquery asp.net-mvc

我试图打电话给确认,然后是来自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的新手。基本上我需要弄清楚如果用户没有确认如何不提交,然后确保消息只在回来的路上弹出。我想我只是需要帮助来订购我所拥有的。

提前致谢。

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

1 个答案:

答案 0 :(得分: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。

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