Javascript ASP.NET MVC3 Ajax.ActionLink-条件确认对话框

Javascript ASP.NET MVC3 Ajax.ActionLink-条件确认对话框,javascript,ajax,asp.net-mvc,Javascript,Ajax,Asp.net Mvc,我有一个@Ajax.ActionLink,我只想在满足某些条件(用户有未保存的更改)的情况下显示一个确认对话框。我创建了一个javascript函数,根据需要显示确认对话框,并根据响应返回true或false。我将其绑定到ActionLink的onclick事件中,但错误的结果不会取消该操作。以下是我的代码示例: @Ajax.ActionLink("Done", .. , .. , new AjaxOptions() { UpdateTargetId = "

我有一个@Ajax.ActionLink,我只想在满足某些条件(用户有未保存的更改)的情况下显示一个确认对话框。我创建了一个javascript函数,根据需要显示确认对话框,并根据响应返回true或false。我将其绑定到ActionLink的onclick事件中,但错误的结果不会取消该操作。以下是我的代码示例:

@Ajax.ActionLink("Done", .. , .. , 
                  new AjaxOptions() { UpdateTargetId = "MyContainerId"},
                  new { onclick = "ConfirmDone()" })
下面是javascript函数

function ConfirmDone() {
    //for testing purposes we can always show the dialog box
    return confirm("Are you sure you want to lose unsaved changes?");
}
为Ajax.ActionLink显示条件确认对话框的最佳方法是什么?

使用OnBegin事件:

@Ajax.ActionLink("Done", "ActionName", 
    new AjaxOptions 
    { 
        OnBegin = "return ConfirmDone()", 
        UpdateTargetId = "MyContainerId" 
    })
如果您只需要弹出一个确认框,那么还可以使用confirmAjax选项。如果需要执行更多自定义逻辑(或希望使用自定义对话框),则需要使用OnBegin

以下是使用确认的示例:

@Ajax.ActionLink("Done", "ActionName", 
    new AjaxOptions 
    { 
        Confirm= "Are you sure you want to do this?", 
        UpdateTargetId = "MyContainerId" 
    })

谢谢我以前尝试过使用Begin,但缺少return关键字。我将使用单独的表单和按钮,如下所述: