Ajax.ActionLink не работает, когда OnBegin имеет значение true

Я намереваюсь вызвать функцию при нажатии на ActionLink, и в зависимости от вывода функции либо перейти на следующую страницу, либо показать предупреждение.

Когда OnBegin имеет значение true в Ajax.ActionLink, он должен обратиться к методу контроллера и, следовательно, перейти к указанному представлению. Но когда я нажимаю на ActionLink, OnBegin возвращает true, но ничего не происходит. Я вижу ту же страницу.

<script src="~/Scripts/jquery-2.1.0.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>


@using (@Html.BeginForm())
{  

    @Ajax.ActionLink("Add Document", // <-- Text to display
                                     "AddDocument", // <-- Action Method Name
                                    "Home", // <-- Controller Name
                                    null,
                                    new AjaxOptions { OnBegin = "OnBegin('AddDocument')" },
                                    null
                                    )



}

<script type="text/javascript">
    function OnBegin(vObject) {
        debugger;      

        return true;       
    }

</script>

Любая помощь будет оценена по достоинству.

Спасибо.


person Nands    schedule 21.05.2014    source источник


Ответы (1)


Я думаю, что вы используете его неправильно. @Ajax.ActionLink ударит по вашему контроллеру и получит содержимое ответа, но вы не указали место для хранения ответа. Одним из свойств AjaxOptions является UpdateTargetId, которое должно быть установлено в тег id, который будет содержать ответ.

@Ajax.ActionLink("Add Document", "AddDocument", "Home", 
    new AjaxOptions 
    { 
        OnBegin = "OnBegin('AddDocument')",
        UpdateTargetId = "responseContent"
    })

В представлении поместите тег для хранения ответа:

<div id="responseContent"></div>

Ответ будет вставлен в файл div.

person rareyesdev    schedule 21.05.2014
comment
Согласно приведенной ниже ссылке UpdateTargetId не требуется stackoverflow.com/questions/12359222/ - person Nands; 21.05.2014
comment
Рабочий код: @Ajax.ActionLink(Добавить документ, AddDocument, Home, null, new AjaxOptions {OnBegin = return OnBegin('AddDocument');, UpdateTargetId = responseContent}), null) - person Nands; 21.05.2014