基本上我有一个webgrid列,我想用actionlinks填充它。 actionlink的标题需要是动态的,并从lambda表达式中获取。我有这个:
grid.Column("Title", format: @<text>@Html.ActionLink("LAMDA", "Post", new { id = item.PostId }) </text>),
但我想做的是这样的事情:
grid.Column("Title", format: @<text>@Html.ActionLink((item) => (item).Title.ToString(), "Post", new { id = item.PostId }) </text>),
但是这给了我错误:
编译器错误消息:CS1660:无法将lambda表达式转换为&#39; string&#39;因为它不是委托类型
答案 0 :(得分:0)
你还没有写过Linq查询 - 你刚刚传入了Lambda函数。你需要做一个完整的查询。另外请记住,查询可能会返回IQueryable或IEnumerable,因此您可能需要调用.Single或.First或类似内容来获取单个字符串。
答案 1 :(得分:0)
想出来..出于某种原因,你不能使用ToString(),我不得不像(字符串)一样......怪异
溶液:
grid.Column(columnName: "Title", format: (item) => Html.ActionLink(((string)item.Title), "Post", new { id = item.PostId })),