我正在尝试连接2列值。应该很简单,但看起来我的LINQ不正确:
@Html.DisplayFor(modelItem => item.StdOrgUsers
.Where(r => r.IsAccountOwner == true)
.First(r => new {r.Firstname + " " + r.Lastname }))
我收到此错误:
编译器错误消息:CS0746:无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问声明匿名类型成员。
必须与之相关:
new {r.Firstname + " " + r.Lastname }
提前致谢。
答案 0 :(得分:2)
您无法在First
内声明您需要的匿名类型:
@Html.DisplayFor(modelItem => item.StdOrgUsers
.Where(r => r.IsAccountOwner == true)
.Select(r => new { FullName = r.Firstname + " " + r.Lastname }))
.First();
同时为匿名类型FullName
指定属性名称,因为您要连接两个属性。
对于错误:
模板只能用于字段访问,属性访问, 单维数组索引或单参数自定义索引器 表达式。
你不需要匿名类型,一个简单的连接字符串就足够了:
@Html.DisplayFor(modelItem => item.StdOrgUsers
.Where(r => r.IsAccountOwner == true)
.Select(r => r.Firstname + " " + r.Lastname)
.First();
答案 1 :(得分:1)
您不需要匿名类型来连接两个字符串:
@Html.DisplayFor(modelItem => item.StdOrgUsers.Where(r => r.IsAccountOwner == true).Select(r => r.Firstname + " " + r.Lastname).First())