Asp.Net Mvc Url.L'Action dans le fichier js externe?
Dans le fichier js externe, je ne peux pas utiliser
url = "@Url.Action("Action", "Controller")"
//url output : @Url.Action("Action", "Controller")
//I get IllegalPath Name error.
Quand j'écris comme ceci:
url = "/Controller/Action"
Et Si le projet est dans un sous dossier, les scripts ne fonctionnent pas. J'ai besoin de quelque chose comme cela comme une Url relative:
url = "~/Controller/Action"
Comment puis-je faire cela? Merci.
- Que diriez -
url = '~' + "@Url.Action("Action", "Controller")"
@Url.Action("Action", "Controller")
de sortie est@Url.Action("Action", "Controller")
alors votre suggestion de sortie est[email protected]("Action", "Controller")
j'ai besoin deSite/subFolder/controller/Action
Vous devez vous connecter pour publier un commentaire.
Comme .js fichiers ne sont pas analysés par asp.net mvc moteur d'affichage, vous simplement ne peut pas utiliser de code c# dans il. Je conseille discrète approche, quelque chose comme cela
Et en javascript, l'utilisation de la valeur de
data-request-url
Je ne suis pas sûr si c'est la solution la plus élégante, mais ce que j'ai fait a été de différenciation entre les registres et la mise en œuvre réelle dans les scripts externes, de sorte que:
De sorte que, dans mon point de vue je n'ai eu que les fonctions de registre et les scripts contenus les valeurs spéciales en tant que paramètre de faire ce que je voulais.
Espérons que cela aide,
'
, de sorte qu'ils visuellement différents à partir des citations de laUrl.Action
Méthode. De toute façon, quelque chose comme ce sera le chemin à parcourir (+1)Voici le modèle que j'ai utilisé. C'est un peu plus d'étapes, mais j'aime que mes urls sont dans un organisé emplacement dans la Vue.
Au fond de mon point de Vue, je vais inclure les Scripts de la Section qui contient les url comme ceci:
À l'intérieur de ma Classe JavaScript (qui est dans un fichier externe) j'ai fait référence à l'url comme ceci:
Je me rends compte que les entrées n'ont pas besoin d'être référencés à l'intérieur de la Classe, mais j'aime en avoir pour mon propre ménage.
Accepté de répondre décrit, vous ne pouvez pas utiliser de code C# dans le fichier JS externe. Voici ce que j'ai l'habitude de le faire si j'ai besoin de passer quelques contrôleur de liens vers mon externe .fichier js.
En C# (.cshtml)
Dans myfile.js