带有actionlink的ASP.NET MVC Webgrid列,使用lambda表达式获取actionlink标题的字符串?

时间:2014-12-23 19:26:57

标签: asp.net-mvc linq razor webgrid

基本上我有一个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;因为它不是委托类型

2 个答案:

答案 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 })),