/ / Ajax.ActionLink non funziona quando OnBegin è true - ajax, asp.net-mvc, actionlink

Ajax.ActionLink non funziona quando OnBegin è true - ajax, asp.net-mvc, actionlink

Intendo chiamare la funzione quando si fa clic su ActionLink e, a seconda dell'output della funzione, passare alla pagina successiva o mostrare un avviso.

Quando OnBegin è true in Ajax.ActionLink, dovrebbe colpire il metodo del controller e quindi passare alla vista specificata. Ma quando faccio clic su ActionLink, OnBegin restituisce true ma non accade nulla. Vedo la stessa pagina.

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

Qualsiasi aiuto sarebbe apprezzato.

Grazie.

risposte:

1 per risposta № 1

Penso che tu lo stia usando nel modo sbagliato. @Ajax.ActionLink colpirà il tuo controller e recupererà il contenuto della risposta ma non hai impostato alcuno spazio per contenere la risposta. Una delle proprietà di AjaxOptions è UpdateTargetId che dovrebbe essere impostato su id tag che conterrà la risposta.

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

Nella vista metti un tag per contenere la risposta:

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

La risposta verrà inserita all'interno di div.