我不明白以下单元测试指令
string links = ((HtmlHelper)null).PageLinks(2, 3, i => "Page" + i);
映射到实际代码,如下所示:
<%= Html.PageLinks((int)ViewData["CurrentPage"], (int)ViewData["TotalPages"], x=> Url.Action("List", new { page = x}))
%&gt;
令我困惑的部分是......如何...
i => "Page" + i
正在测试以下内容:
x=> Url.Action("List", new { page = x})
答案 0 :(得分:2)
您应该发布PageLinks代码以获取beter Understanding,但我想我知道id会做什么(这是来自史蒂夫桑德森MVC书吗?)
PageLinks的第三个参数是一个接收int参数(pageNumber)并返回一个字符串的函数,该函数将被调用帮助器生成的每个链接,以获取每个链接指向的URL。在您的代码中,您使用Lambda表达式(http://msdn.microsoft.com/en-us/library/bb397687.aspx)定义此函数。
例如,当您在测试中调用助手时:
(string links = ((HtmlHelper)null).PageLinks(2, 3, i => "Page" + i);)
你应该收到这样的东西:
<a href='Page1'></a> <a href='Page2'></a> <a href='Page3'></a>
注意href如何更改每个链接,这就是你必须检查结果以查看帮助程序是否正常工作。
x=> Url.Action("List", new { page = x})
以相同的方式工作,你的助手为它需要生成的每个链接调用Url.Action。