web-dev-qa-db-fra.com

comment appeler la fonction javascript dans html.actionlink dans asp.net mvc?

comment appeler la fonction javascript dans html.actionlink dans asp.net mvc?

je veux appeler une méthode qui est dans le script Java mais comment l'appeler dans html.actionlink dans la même page merci d'avance

27
Renu123

vous devez utiliser l'objet anonyme htmlAttributes, comme ceci:

<%= Html.ActionLink("linky", "action", "controller", new { onclick = "someFunction();"}) %>

vous pouvez aussi lui attribuer un identifiant et y attacher avec jquery/peu importe, comme ceci:

<%= Html.ActionLink("linky", "action", "controller", new { id = "myLink" }) %>


$('#myLink').click(function() { /* bla */ });
56
Andrew Bullock

Pour appeler javascript dans votre lien d'action, il vous suffit d'écrire actionlink comme ceci:

@Html.ActionLink("Delete", "Your-Action", new { id = item.id },
                 new { onclick="return confirm('Are you sure?');"})

Ne vous trompez pas entre les valeurs de route et les attributs HTML.

21
Ashwini
<a onclick="MyFunc()">blabla..</a>

Il n'y a rien de plus dans @ Html.ActionLink que vous pourriez utiliser dans ce cas. Et le rasoir est evel par lui-même, déposez-le où vous pouvez.

8
Roman Pokrovskij
@Html.ActionLink("Edit","ActionName",new{id=item.id},new{onclick="functionname();"})
5
Ashwini

C'est le seul qui a fonctionné pour moi dans le fichier .cshtml:

@Html.ActionLink(
   "Name", 
   "Action", 
   "Controller", 
   routeValues: null, 
   htmlAttributes:new Dictionary<string, object> {{ "onclick", "alert('Test');" }})

J'espère que ça aide.

1
Katsifaris

C'est un peu un vieux post, mais il y a en fait un moyen de faire un opérateur onclick qui appelle une fonction au lieu d'aller n'importe où dans ASP.NET

helper.ActionLink("Choose", null, null, null, 
    new {@onclick = "Locations.Choose(" + location.Id + ")", @href="#"})

Si vous spécifiez des guillemets vides ou similaires dans le contrôleur/l'action, il sera probablement ajouté un lien vers ce que vous avez répertorié. Vous pouvez le faire et faire un retour false dans onclick. Vous pouvez en savoir plus à ce sujet sur:

Quel est l'effet de l'ajout de 'return false' à un écouteur d'événement click?

Si vous faites cela en un clic dans un fichier cshtml, il serait un peu plus simple de spécifier le lien vous-même (un href ...) au lieu de laisser ActionLink le gérer. Si vous utilisez un HtmlHelper, comme dans l'exemple ci-dessus, alors, je dirais qu'appeler ActionLink est une solution acceptable, voire une solution meilleure, consiste à utiliser tagbuilder à la place.

0
TheDarkTrumpet