Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 带有actionlink的ASP.NET MVC Webgrid列,使用lambda表达式获取actionlink标题的字符串?_Asp.net Mvc_Linq_Razor_Webgrid - Fatal编程技术网

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

Asp.net mvc 带有actionlink的ASP.NET MVC Webgrid列,使用lambda表达式获取actionlink标题的字符串?,asp.net-mvc,linq,razor,webgrid,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”,格式:@@Html.ActionLink(“

基本上我有一个webgrid列,我想用actionlinks填充它。actionlink的标题需要是动态的,并从lambda表达式中获取。我所拥有的是:

grid.Column("Title", format: @<text>@Html.ActionLink("LAMDA", "Post", new { id = item.PostId }) </text>),            
grid.Column(“Title”,格式:@@Html.ActionLink(“LAMDA”,“Post”,new{id=item.PostId})),
但我想做的是这样的:

grid.Column("Title", format: @<text>@Html.ActionLink((item) => (item).Title.ToString(), "Post", new { id = item.PostId }) </text>),            
grid.Column(“Title”,格式:@@Html.ActionLink((item)=>(item.Title.ToString(),“Post”,新的{id=item.PostId})),
但这给了我一个错误:


编译器错误消息:CS1660:无法将lambda表达式转换为类型“string”,因为它不是委托类型

您实际上没有编写Linq查询-您刚刚传入了lambda函数。你需要做一个完整的查询。还请记住,查询可能会返回IQueryable或IEnumerable,因此您可能需要对其调用.Single或.First或类似函数,以获取单个字符串。

找到了它。。由于某些原因,您不能使用ToString(),我必须像(string)一样强制转换。。。诡异的

解决方案:

grid.Column(columnName: "Title", format: (item) => Html.ActionLink(((string)item.Title), "Post", new { id = item.PostId })),          

该查询应该在控制器中完成,并作为视图的模型返回,或者添加到ViewBagchanged问题中以反映lamda函数,而不是linq查询。找到了下面的答案,非常奇怪。。。但是谢谢你!