12
votes

Mvc jQuery aller à l'action du contrôleur

En JQuery, je dois dire au programme d'aller à l'action employeurecontroller et Empl. Comment puis-je dire ça faire cela. Je veux un moyen simple de le faire sans utiliser Ajax.


2 commentaires

Que veux-tu dire? Vous voulez naviguer vers une nouvelle page?


"Aller à"? Avoir ce qui va? La page entière? Un appel Ajax?


5 Réponses :


0
votes

Faire des hypothèses sur la structure et le routage de l'URI, mais:

window.location = '/ employé / empl /';


2 commentaires

Seulement s'il a sa route configurée pour être / contrôleur / action


Ouais. Ajout d'un "Disclaimer" il y a des moments.



18
votes
window.location.href = "/{controller}/{action}" //in your case, /employee/empl
This works because of the routes specified in your Global.asax.cs file.  I suggest you read up on how this works as it's one of the fundamentals of MVC....

4 commentaires

mieux utiliser l'emplacement.href = 'tout ce qui est';


@Bigmike a ajouté ".href" à la fin. Merci pour les commentaires, vous avez probablement raison que ce soit plus clair comme fenêtre.Location est un objet.


Et si je veux passer un paramètre?


Si quelqu'un voulait passer un paramètre, on ferait simplement la fenêtre.Location.href = "/ {contrôleur} / {action}? {paramètre} = {valeur} & {paramètre2} = {VA lue} = {VA lue}



5
votes

Eh bien, toute bonne réponse jusqu'à présent, mais en utilisant une chaîne magique pour la construction de l'URL me donne simplement les frissons. Je préfère ajouter une extension comme ceci: xxx

puis dans mon code JS utilisez: xxx

Il est plus cohérent, soin de l'intérieur routage, et me donne un point centralisé où faire des choses méchantes sur les URL :)

Eh bien, une autre chose, xxx

est bon et fonctionne, toujours xxx

est préférable.

hth


6 commentaires

Il y a déjà est une assistant pour cela: @ URL.action ("action", "contrôleur", nouveau {foo = modèle.bar})


@KristofClaes: Oui, bien sûr, et comme vous pouvez le constater, il est utilisé en interne, le propre assistant est juste d'avoir une manière centralisée dans laquelle je peux faire des choses méchantes sur les URL, idéalement, il n'y a pas besoin de cela dans le monde idéal, Mais parfois, les exigences sont si drôles que je devais recourir à cela. Bien sûr, j'ai supprimé ma logique dans le code de l'échantillon, en train de poster une maquette de mon assistant réel :)


Un autre inconvénient ... Que se passe-t-il lorsque ce script faisant le déménagement n'est pas dans une vue (comme cela ne devrait pas être)? Vous ne pouvez pas utiliser vos méthodes d'assistance. Au lieu de cela, il devrait être parfaitement clair pour simplement rediriger vers un itinéraire.


@Adamterlson: Pas vraiment un inconvénient, je passe habituellement des URL (et des accessoires de modèle) dans les propriétés de l'objet JS (je suis puriste d'avoir un code JS dans les fichiers JS). Dans ce cas, je ne peux pas voir un moyen d'utiliser l'aide de MS Action. Jusqu'à ce que le moteur Razor puisse appliquer, c'est la magie dans les fichiers JS, je suppose que nous devrions vivre avec cette "opportunité". Le point important de ma solution consiste à maintenir la génération d'URL générique (à l'aide de structures routedata) par ex. Ne pas impliquer qu'un certain itinéraire existe et que le moteur MVC les résoudra.


Droite, je ne discutais pas pour action ou votre méthode, je disais qu'aucun d'entre eux ne fonctionnera et il suffira de coder l'URL manuellement comme je l'ai suggéré dans ma réponse. Parfois, il vous suffit de supposer que la navigation fonctionnera.


Désolé je ne vois pas votre point (et probablement cela est dû à mon très mauvais anglais). Si j'ai besoin d'une URL dans un fichier JS, j'écris simplement une fonction / un objet et je l'ai défini dans la vue (via document.Ready.Ready () ou directement sur JS Call. Pardonne-moi Bu je ne peux voir aucun scénario lorsqu'un flux n'est pas Passer au moins une fois à partir d'une vue / contrôleur, pouvez-vous me donner un échantillon de ce que vous voulez dire exactement?



3
votes

La réponse acceptée ne fonctionne pas lorsque l'application est publiée. J'ai dû utiliser xxx

espère qu'il aide


0 commentaires

0
votes

et pour les paramètres xxx


0 commentaires