79 votes

Comment accéder à une variable javascript dans @ URL.Action ()

Comment puis-je accéder à la valeur JavaScript dans @URL.Action() ? quelque chose comme:

 <script type="text/javascript">
function name(myjavascriptID)
{
     jQuery("#list_d").jqGrid('setGridParam', { url: '@URL.Action("download file", "download", new { id = <myjavascriptID> })', page: 1 });

}
</script>
 

151voto

Brian Mains Points 31772

Tu ne peux pas. JavaScript ne s'exécute pas lors de la génération de l'URL de l'action. Ce que vous pouvez faire, c'est faire quelque chose comme ça:

 function name(myjavascriptID)
{
     var link = '@URL.Action("download file", "download", new { id = "-1" })';
     link = link.replace("-1", myjavascriptID);

     jQuery("#list_d").jqGrid('setGridParam', { url: link, page: 1 });

}
 

HTH.

20voto

nocarrier Points 530

Je fais quelque chose d'assez similaire, mais moins verbeux:

 var myUrl = '@Url.Action("Solution","Partner")/' + myjavascriptID;
$.ajax.load(myUrl); // or whatever
 

Nous pouvons le faire à cause du routage, et finalement, Url.Action avec les paramètres du dictionnaire de route se traduit par un URI ressemblant à ceci:

 http://localhost:41215/Partner/Solution?myJavascriptID=7
 

Juste un deuxième choix, parce que le vieil homme sage a dit une fois "Ce sont nos choix, Harry, qui montrent ce que nous sommes vraiment, bien plus que nos capacités."

13voto

games Points 1

Vous pouvez transmettre les variables à n’importe quel lien, comme indiqué ci-dessous ...

var url = '@ Html.Raw (@ Url.Action ("NomMéthode", "Nom du Contrôleur"))' ''? id = '+ myjavascriptID

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X