我创建了一个htmlhelper,其签名如下:
public static MvcHtmlString PageLinks(this HtmlHelper html,
PagingInfo pagingInfo,Func<int, string> pageUrl)
我看到它像这样传递:
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))
但我不知道这是什么意思?
x => Url.Action("List", new {page = x})
请建议这个lambda表达的含义
答案 0 :(得分:1)
嗯,这是一个lambda表达式,它接受一个名为x
的参数,并隐式输入为int
,并使用字符串{{1}的一个参数调用Url.Action
匿名类型的另一个参数,它具有单个属性"List"
,其值为page
。
从x
返回的值用作lambda表达式的返回值。
就语言结构而言,这就是lambda表达式本身的分解方式。如果您在询问行为方面的含义,那就是另一回事 - 您需要查看自己的Url.Action
方法,以及{{1}的文档}}
答案 1 :(得分:1)
x => Url.Action("List", new {page = x})
这是一个给出x
的(lambda)函数(我们知道x
必须是整数,因为签名是Func<int, string>
)返回一个url(字符串)。 (从技术上讲,这是一个lambda表达式,但在这种特殊情况下会失去差异)
您可以像这样使用它:string url = pageUrl(pageNumber);
Url.Action
提供了具有单个参数(类型为List
且名称为int
)的操作page
的网址,其中将填充{的值{1}}。此参数可能是必须返回的列表页面。
x
这将“返回”一个html字符串,其中包含我们之前计算过的url的链接。 (可能是@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))
或类似的东西)啊......这是你的功能: - )
(我认为你这样做:ASP.NET MVC Paging, Preserving Current Query Parameters,<a href='url'></a>
类包含当前页面和总页面,对吧?“