0

I tried something like this

@Html.DisplayFor(modelItem => (item.Name + "@" + item.Department))

I get "InvalidOperationException" (Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.)

Both the members are strings, I thought this should work...

Thanks

4

2 回答 2

1

错误是因为DisplayFor接受了Expressionwhich isExpression<Func<TModel,TReturn>>而不是 delegate Func<TModel, TReturn>。因此,您不能将它与随机 C# 代码混合,因为它不是委托。

为了得到你想要的,你可以使用这个(我知道奇怪的语法 - 因为你必须逃避@):

@Html.DisplayFor(item => item.Name)@:@@@Html.DisplayFor(item => item.Department)
于 2013-10-05T19:17:51.667 回答
1

请参阅以下链接。我希望这能解决您的问题。

尝试执行此操作时出现模板错误?

模板只能与字段访问、属性访问、一维数组索引或单参数自定义索引器表达式一起使用

于 2013-10-05T19:11:39.507 回答