2009-07-29 9 views
0

Je sais que c'est probablement quelque chose de facile à mettre en œuvre, mais j'ai un peu de mal à trouver une réponse. Semblable à la façon dont Stackoverflow vous permet de continuer à explorer les questions à l'aide de balises, j'essaie d'implémenter la même chose. Alors, je l'ai créé une liste des « tags » sur ma page MVC qui ressemble à ceci:Ajout à l'URL actuelle dans ASP.NET MVC

<%For Each item As myItem In ViewData("topTags")%> 
    <li><%=Html.ActionLink(Html.Encode(item.tagName), "Index", New With {.tags = item.tagName})%</li> 
<%Next%> 

Cela génère de belles URL qui ressemblent à http://mysite.com/controller/index?tags=MyTageName

J'ai une méthode de contrôleur qui prend la valeur du paramètre tagName et nous sommes bons à aller ... au premier niveau. Je veux être en mesure de prendre la vue qui est retournée ici et pour chacune de mes balises dans le code ci-dessus, ajouter le nouveau nom de balise à l'URL. Mes nouvelles URL générées ressembleraient:

http://mysite.com/controller/index?tags=TagNameIClickedBefore+TagNameInForEachLoop

Hope this sens ... des idées? Ecrire mon propre HTMLHelper? Une fonction magique dans URL.namespace je suis manquant? :)

Répondre

2

Je suppose que cela est ce que vous voulez faire:

<%For Each item As myItem In ViewData("topTags")%> 
    <li><%=Html.ActionLink(Html.Encode(item.tagName), "Index", 
     New With {.tags = Request.QueryString("tags") & "+" & item.tagName})%></li> 
<%Next%> 
+0

qui l'a fait, et certainement assez facile. J'ai un si puis vérifiant pour voir si request.querystring ("Tags") est vide dans la boucle. Une question de plus, comment obtient-on le signe + à afficher sans être htmlEncoded ou est-ce juste une mauvaise pratique? – Tommy

+0

Je pense que ce serait mieux si vous avez juste utilisé l'espace là, au lieu du signe +. –

Questions connexes