Comment accéder à la variable javascript dans @URL.Action()
Comment puis-je accéder à valeur JavaScript à l'intérieur de @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>
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas. JavaScript n'exécute pas lors de la génération de l'URL de l'action. Ce que vous pouvez faire, c'est de faire quelque chose comme ceci:
HTH.
link.href
j'ai besoin d'utiliserlink
. Merci beaucoup!@URL.Action
à@Url.Action
car il montre que le temps de compilation d'erreur- Je faire quelque chose d'assez similaire, mais moins détaillé:
Nous pouvons faire cela à cause de routage, et, finalement, Url.Action avec itinéraire dictionnaire paramètres se traduit par une URI qui ressemble à:
Juste un deuxième choix, parce que, comme un vieux sage a dit une fois "C'est nos choix, Harry, qui montrent ce que nous sommes vraiment, beaucoup plus que nos aptitudes."
Vous pouvez passer des variables à un lien, comme indiqué ci-dessous...
Vous pouvez générer le code JavaScript en C# de cette façon:
Voici le code à partir de la question réécrit en utilisant cette technique:
Dans la même veine que Brian Secteur de la réponse, vous pouvez formater votre chaîne d'url au lieu de remplacer -1 avec votre variable, c'est si comme moi, vous jugez qu'il est préférable de lire. La réponse suivante suppose que vous avez modifié
String
s'prototype comme suggéré dans cette réponse:La
unescape
appel est nécessaire si vous voulez décoder votre{0}
. J'aime cette alternative, car il est plus facile d'avoir plusieurs paramètres de JS variables. Par exemple:J'ai ajouté
Html.Raw
dans mon deuxième exemple, afin d'éviter d'avoir&
dans la chaîne d'url.Vous pouvez remplacer l'url de ce type de code ci-dessous