2010-05-06 7 views
4

Ok je rencontre quelques problèmes avec la HtmlHelper de ActionLink.ASP.NET MVC: Html.ActionLink() génère lien vide

J'ai quelques routage compliqué comme suit:

 routes.MapRoute("Groep_Dashboard_Route", // Route name 
         "{EventName}/{GroupID}/Dashboard", // url with Paramters 
         new {controller = "Group", action="Dashboard"}); 

     routes.MapRoute("Event_Groep_Route", // Route name 
         "{EventName}/{GroupID}/{controller}/{action}/{id}", 
         new {controller = "Home", action = "Index"}); 

Mon problème génère des liens d'action qui correspondent à ces modèles. Le paramètre eventname est vraiment juste pour avoir un lien convivial. ça ne fait rien.

Maintenant, quand je suis en train par exemple pour générer un lien. cela montre le tableau de bord d'un certain groep. Comme :

mysite.com/testevent/20/Dashboard 

Je vais utiliser la ActionLink suivante:

<%: Html.ActionLink("Show dashboard", "Group", "Dashboard", new { EventName_Url = "test", GroepID = item.groepID}, null)%> 

Ce que mon résultat réel en html donne est:

<a href="">Show Dashboard</a> 

Qu'est-ce que je devrais avoir est quelque chose comme:

<a href="test/20/Dashboard">Show Dashboard</a> 

S'il vous plaît supporter avec moi, je suis encore nouveau à ASP MVC. Quelqu'un pourrait-il me dire ce que je fais mal?

aide serait appréciée!

+0

mal taper "groupe"? –

Répondre

3

Il y a un certain nombre de mauvaises choses ici, à part ce qui a déjà été dit - vous avez également les chaînes du contrôleur et l'action autour de la mauvaise façon.

Cette signature de la méthode que vous êtes après se présente comme suit:

HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) 

Ainsi, votre, il faut être:

<%: Html.ActionLink("Show dashboard", "Dashboard", "Group", new { EventName = "test", GroupID = item.groupID}, null) %> 

HTHS,
Charles

+0

Oui! Le truc mal orthographié est parce que je voulais traduire le code un peu en anglais et le rendre plus clair. Le problème était en effet j'ai tourné autour du contrôleur et de l'action. Erreur stupide. Désolé de vous déranger tous avec une telle question stupide Tnx beaucoup –

+2

Mate, ne nous avons tous être pas si dur sur vous-même ... notre juste part des moments PEBKAC! Continuez à poster des questions, peu importe à quel point elles semblent faciles ou dures :-) Ps. pebkac = [p] roblem [e] xists [b] etween [k] eyboard [a] et [c] hair – Charlino

3

Je pense que le problème est qu'il ne trouve pas un itinéraire qui correspondent à ces paramètres. Vous avez mal orthographié GroupID et vous avez entré un paramètre de route qui n'existe pas ("EventName_Url") dans l'itinéraire que vous essayez de faire correspondre. Le ActionLink devrait probablement regarder quelque chose comme ceci:

<%: Html.ActionLink("Show dashboard", "Group", "Dashboard", new { EventName = "test", GroupID = item.groepID}, null)% 
Questions connexes