2010-11-01 5 views
1

j'ai la chaîne avec le javascript appel qui est lié à HTML Sélectionner l'événement:ASP.NET MVC JS freins appellent

@Html.DropDownList(Model.DropDownName, Model.ItemsForView, new { onchange = "someMethod('someArgumentValue')" }) 

qui est rendu au code suivant:

onchange="someMethod('someArgumentValue')" 

Y at-il façon de rendre le symbole "tel quel"?

+1

Vous pouvez envisager le câblage de façon dynamique vos événements . –

Répondre

2

Il serait préférable d'utiliser javascript discret:

@Html.DropDownList(Model.DropDownName, Model.ItemsForView, new { id = "foo" }) 

et dans un fichier .js séparé:

$(function() { 
    $('#foo').change(function() { 
     someMethod('someArgumentValue'); 
    }); 
}); 

Il y a au moins deux avantages:

  • Vous n'êtes pas mélange de script et de majoration
  • Le balisage est réduite et les scripts sont mises en cache par le navigateur
+0

Oui, c'est le chemin à parcourir. Notez qu'il apporte une dépendance de jQuery au mix, mais c'est une bonne chose :-) – Charlino

+0

Je vais le réimplémenter js discrètement par la suite ... mais maintenant j'ai besoin de solution rapide et sale. J'espérais qu'il y en a un ... – SiberianGuy

0

Essayez:

@Html.DropDownList(Model.DropDownName, Model.ItemsForView, new { onchange = @"someMethod('someArgumentValue')" }) 

ou

@Html.DropDownList(Model.DropDownName, Model.ItemsForView, new { onchange = "someMethod(\'someArgumentValue\')" }) 

ou

@Html.DropDownList(Model.DropDownName, Model.ItemsForView, new { onchange = "someMethod(\\\"someArgumentValue\\\")" }) 
Questions connexes