我有一个我无法控制的模型。它有一个名为Pass的字符串属性,它包含一个表示传递的“1”和一个表示失败的“0”。
我还有一个显示模板,用特定图像替换布尔属性,具体取决于布尔值是true还是false。
当我尝试在我的Razor模板中使用@Html.DisplayFor(c => (c.Pass == "1"))
时,我得到了一个
System.InvalidOperationException:模板只能用于 字段访问,属性访问,单维数组索引或单个 参数自定义索引器表达式。
如何修改我的视图以便c.Pass == "1"
被解释为真值,并使用我可用的布尔显示模板。
答案 0 :(得分:2)
您可以在视图中创建一个布尔变量:
@{ var pass = Model.Pass == "1"; }
@Html.DisplayFor(c => pass)
答案 1 :(得分:1)
1)在模型中添加属性 e.g .-
[UIHint("PassFail")]
public decimal Pass { get; set; }
2)创建一个显示模板PassFail.cshtml @model string
@if (Model == "1")
{
<text>Pass</text>
}
else
{
<text>Fail</text>
}
3)现在你可以直接使用
了@Html.DisplayFor(e => e.Pass)