1

approprié Les vues par défaut échafaudés générées par ASP.NET MVC 2 contiennent des liens tels que:ASP.NET MVC 2 point Retour à la vue Liens

<%: Html.ActionLink("Back to List", "Index") %> 
<%: Html.ActionLink("Create New", "Create") %> 

Ces liens sont parfaits si je suis venu à cette page de ce même racine. Mais par exemple, si j'ai des ordres et des personnes et que je navigue vers /Orders/Edit/17 via /Persons/Orders/3, alors 'retour à la liste' me renvoie à la commande 'root', non 'Persons root', où je veux aller, parce que la vue 'Edit Orders' ne connaît que les commandes . Cela rend la navigation difficile et interrompt le flux ..

Je souhaite réutiliser la même vue "Modifier les commandes", quel que soit l'endroit d'où je viens, mais je ne suis pas sûr de savoir comment transmettre cette information.

Je sais qu'il est possible de passer des paramètres comme /Orders/Edit/17?myparam=myvalue mais cela limitera-t-il mes choix plus tard si j'ai besoin de passer des paramètres qui indiquent l'ordre de tri/filtre pour les grilles?

Quel est le moyen préféré de passer un retour/l'origine à ma vue afin qu'il puisse rendre les liens correctement? Sinon, comment puis-je appeler la vue différemment du contrôleur?

EDIT:

Pour une solution propre, voir THIS POST

Répondre

1

Passage des paramètres par l'querystring ne limitera pas vraiment vous aussi longtemps que vous n'utilisez pas les mêmes noms. Il y a une restriction de taille sur les chaînes de requête, mais vous ne le frapperez probablement pas.

C'est en gros comme ça que je le fais. Je suis curieux de voir ce que les autres répondent.

+0

Cette fonctionnalité semble être quelque chose qui aurait dû être pris en compte dans le cadre; Il semble assez difficile de spécifier ces paramètres car vous devez le faire pour tous les niveaux de navigation. – Harper

0

Cette fonctionnalité semble être quelque chose qui aurait dû être pris en compte dans le cadre; Il semble assez difficile de spécifier ces paramètres car vous devez le faire pour tous les niveaux de navigation.

Pourquoi? retour est quelque chose qui appartient aux navigateurs, avec l'histoire. Cela a été comme ça pendant un certain temps, pourquoi le cadre devrait-il gérer cela?

Ce dont vous avez besoin n'est pas la norme.

De plus, vous êtes responsable de garder votre code au sec. Vous pouvez certainement le gérer d'une manière que toute la répétition que vous avez est le nom de la fonction que vous appelez.

+0

Cela n'a rien à voir avec la fonction 'Retour'. J'ai modifié mon post avec la bonne solution; vous devriez le regarder - cela pourrait vous aider. – Harper

+0

@Harper après avoir relu votre question Je vois que la raison pour laquelle vous dupliquez la fonctionnalité du navigateur est à cause des vues par défaut échafaudées/ce n'est pas un bon argument pour le faire. A propos du lien, vous pouvez faire très similaire avec RenderPartial et RenderAction, vous pouvez même le faire avec une vue complète. Je pensais que vous y étiez un peu plus intéressé, car le fait de transmettre des données de modèle aux vues est ce que vous faites dans presque tout ce qui s'y trouve. – eglasius