Question

J'ai la Ajax.ActionLink suivante. je veux ajouter un événement de clic à ce ActionLink. Comment puis-je faire

<%= Ajax.ActionLink("text", "textaction", new { param = 1}, new AjaxOptions
                            {                                   
                                OnSuccess = "updatePlaceholder",                                
                                UpdateTargetId = "result"
                            })%>
Était-ce utile?

La solution

Le gestionnaire d'événement click est déjà ajouté à ce lien parce que vous utilisez la méthode d'aide de Ajax.ActionLink. Ce gestionnaire d'événements clic annuler l'action par défaut et envoyer une demande d'AJAX à l'adresse ce lien pointe. Vous pouvez essayer de régler la OnBegin option.

Et si vous utilisez jquery dans votre projet, vous pourriez avoir un normale lien (sans tout le javascript ajouté à votre marge bénéficiaire par l'assistant Ajax.ActionLink):

<%= Html.ActionLink(
    "text", 
    "textaction",
    new { param = 1 },
    new { id = "mylink" })
%>

puis dans un fichier JavaScript distinct joindre le gestionnaire d'événements, cliquez sur:

$(function() {
    $('#mylink').click(function() {
        // here you could execute some custom code
        // before sending the AJAX request
        $('#result').load(this.href, function() {
            // success function
        });
        return false;
    });
});

De cette façon permettra d'atteindre une séparation claire entre votre balisage et les fichiers javascript. Comme javascript sera dans des fichiers séparés qui seront mises en cache par le navigateur client vous permettra de réduire la bande passante.

Autres conseils

Vous devez modifier le code:

$ ( '# MyLink'). Cliquez sur (function (e) {         e.preventDefault ();         .... faire ce que vous voulez

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top