2011-05-05 5 views
0

J'ai du mal à faire fonctionner les callbacks pour un formulaire. J'ai quelque chose comme ceci:Les rappels sur Ajax.BeginForm ne fonctionnent pas

<script> 
function VendorCreated() { 
    alert('ok'); 
} 
</script> 

@using (Ajax.BeginForm("Create", "Vendor", new AjaxOptions { 
    UpdateTargetId = ViewBag.TargetId, 
    HttpMethod = "Post", 
    OnSuccess="VendorCreated", 
    })) { 

lors de la soumission ma fonction ne sera jamais créée. Si j'utilise:

OnSuccess="alert('ok')" 

cela fonctionne très bien. J'ai également essayé:

OnSuccess="function() { VendorCreated(); }" 

mais j'obtiens une erreur d'exécution. D'autres ont ce problème mais je n'ai trouvé aucune résolution, voir MVC 3 Razor - Ajax.BeginForm OnSuccess et Ajax.BeginForm OnBegin confirmation Via jquery modal.

Si je regarde le débogueur IE (F12) je ne vois pas de balise de script dans le code généré ... quelle est la bonne approche?

Répondre

0

ok, j'ai réduit le problème ... le code ci-dessus est généré par une vue qui est chargée dans une DIV dans une autre vue par jQuery. J'ai récemment découvert que je peux inclure une vue dans une autre vue en utilisant @ Html.Action() et cela semble résoudre le problème ci-dessus. Je reçois maintenant des rappels!

pour quiconque ayant l'inclinaison, une explication de pourquoi on travaille et pas l'autre serait génial.

0

Incluez-vous jquery.unobtrusive.ajax.js dans votre page?

+0

oui, sinon je ne recevrais pas de rappel du tout (je sais parce que je ne l'avais pas inclus auparavant donc je n'ai pas de rappel ... maintenant je reçois un rappel mais seulement comme indiqué ci-dessus) – ekkis