2010-10-25 5 views
0

Je ne comprends pas comment l'instruction de test unitaire suivantPro ASP.net MVC Framework - url.action

string links = ((HtmlHelper)null).PageLinks(2, 3, i => "Page" + i); 

cartes à code réel comme suit:

<%= Html.PageLinks((int)ViewData["CurrentPage"], (int)ViewData["TotalPages"], x=> Url.Action("List", new { page = x}))%>

La partie cela me déroute est que comment ...

teste les éléments suivants:

x=> Url.Action("List", new { page = x}) 

Répondre

2

Vous devez envoyer le code pagelinks pour Beter compréhension, mais je pense que je sais ce que id fait de toute façon (est-ce du livre steve sanderson MVC?)

Le troisième paramètre de la pagelinks sa fonction que recevoir un paramètre int (pageNumber) et renvoyer une chaîne, cette fonction est appelée pour chaque lien que l'assistant va générer, pour obtenir l'URL vers laquelle pointe chaque lien. Dans votre code, vous définissez cette fonction à l'aide d'expressions Lambda (http://msdn.microsoft.com/en-us/library/bb397687.aspx).

Par exemple, lorsque vous appelez votre aide sur le test:

(string links = ((HtmlHelper)null).PageLinks(2, 3, i => "Page" + i);) 

vous devriez recevoir quelque chose comme ceci:

<a href='Page1'></a> <a href='Page2'></a> <a href='Page3'></a> 

Remarquez comment le changement href pour chaque lien, est ce que vous avez vérifier le résultat pour voir si l'assistant travaille. Fonctionne de la même manière, votre assistant appelle Url.Action pour chaque lien qu'il doit générer.

Questions connexes