J'ai besoin de changer la façon dont MVC rend les liens d'action (et les formes et url, etc) en fonction d'un paramètre de configuration. Je suis en train d'écrire une application facebook en utilisant MS MVC et mes liens d'action doivent rendre lien si:Comment puis-je modifier la façon dont MVC rend dynamiquement un lien d'action?
<a href="/MyFBApplication/Home/Index/">home</a>
cliquant sur le lien ci-dessus feuillette à:
http://apps.facebook.com/MyFBApplication/Home/Index/
« MyFBApplication » est le nom de l'application facebook. Pour construire le lien que j'ai commencé en appelant
Html.ActionLink("Home", "Index", "Home")
Lorsqu'un utilisateur clique sur le lien facebook ensuite faire une demande à ce lien sous les couvertures:
http://www.myapplicationserver.com/facebook/123456/Home/Index/
(123456 est id client et est nécessaire)
Ensuite, la réponse d'ici est traitée par facebook et affichée à l'utilisateur comme:
http://apps.facebook.com/MyFBApplication/Home/Index/
Comme mentionné ci-dessus facebook demander les données de page dans les coulisses de.
http://www.myapplicationserver.com/facebook/123456/Home/Index/
Le problème est un appel à
Html.ActionLink("Home", "Index", "Home")
rendra un lien qui mène à
http://apps.facebook.com/facebook/123456/Home/Index/
et j'ai besoin pour mener à:
http://apps.facebook.com/MyFBApplication/Home/Index/
Je l'ai fait fonctionner correctement acheter construire un nouveau jeu de méthodes d'extension.
Html.FacebookActionLink("Home", "Index", "Home")
Html.FacebookBeginForm("Index", "Home")
Html.Facebook(etc)
Mais cela a une "odeur". Je voudrais trouver un endroit où je peux intercepter la plomberie de Html.ActionLink() en cours et changer la sortie. Ensuite, je peux utiliser tous les appels standard.
Merci!
Si vous pensez que votre méthode d'extension est fulgurante, postez-la dans votre question afin que nous puissions l'analyser et la commenter, comme «ça marche, mais ce serait mieux si vous faisiez quelque chose comme ça. L'un des points de vente principaux de Asp.Net MVC est l'extensibilité qu'il fournit car c'est juste un cadre de base. C'est essentiellement un bac à sable avec quelques outils. Parfois, vous devez faire d'autres outils pour obtenir ce «château» que vous construisez. – MunkiPhD