我正在尝试学习C#和MVC3。我希望将WebGrid列作为Html.Action链接,但是,在我这样做之前它不会起作用:
grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { id = item.Id }))
所以我知道这解决了它,但为什么呢? (项目)看起来像一个演员,但是什么是=>对于?从阅读其他问题我发现,出于某种原因这样做显然是不好的 - 为什么?
答案 0 :(得分:8)
这在C#中称为lambda表达式/匿名函数。 ()
部分是参数列表,=>
表示右侧是lambda的正文/表达式。
这是一个略微扩展的形式,可能会更清楚
Func<ItemType, string> linkFunction = (item) =>
{
return Html.ActionLink("Edit", "Edit", new { id = item.Id });
};
答案 1 :(得分:7)
那将是lambda expression。不,使用lambda并不坏,这是一件非常好的事情。