ASP.NET MVC3 Ajax.ActionLink - диалоговое окно условного подтверждения - PullRequest
5 голосов
/ 07 марта 2012

У меня есть @ Ajax.ActionLink, для которого я хотел бы отобразить диалоговое окно подтверждения, только если выполнены определенные условия (у пользователя есть несохраненные изменения).Я создал функцию javascript, которая показывает диалог подтверждения по мере необходимости и возвращает true или false на основе ответа.Я привязал его к событию onclick в ActionLink, но ложный результат не отменяет действие.Вот пример моего кода:

@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?

1 Ответ

14 голосов
/ 07 марта 2012

Используйте событие OnBegin:

@Ajax.ActionLink("Done", "ActionName", 
    new AjaxOptions 
    { 
        OnBegin = "return ConfirmDone()", 
        UpdateTargetId = "MyContainerId" 
    })

Вы также можете использовать опцию «Подтвердить ajax», если все, что вам нужно сделать, это открыть окно подтверждения. Если вам нужно сделать больше настраиваемой логики (или использовать настраиваемое диалоговое окно), вам нужно будет использовать OnBegin.

Вот пример использования подтверждения:

@Ajax.ActionLink("Done", "ActionName", 
    new AjaxOptions 
    { 
        Confirm= "Are you sure you want to do this?", 
        UpdateTargetId = "MyContainerId" 
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...