将字符串转换为布尔值以在MVC3中使用布尔值显示模板
本文关键字:布尔值 显示 转换 字符串 MVC3 | 更新日期: 2023-09-27 17:58:15
我有一个几乎无法控制的模型。它有一个名为Pass的字符串属性,其中包含表示通过的"1"和表示失败的"0"。
我还有一个显示模板,它用一个特定的图像替换布尔属性,这取决于布尔值是true还是false。
当我尝试在我的Razor模板中使用@Html.DisplayFor(c => (c.Pass == "1"))
时,我会得到一个
System.InvalidOperationException:模板只能与一起使用字段访问、属性访问、一维数组索引或单个参数自定义索引器表达式。
我如何修改我的视图,使c.Pass == "1"
被解释为真值,并利用我可用的布尔显示模板。
您可以在视图中创建一个布尔变量:
@{ var pass = Model.Pass == "1"; }
@Html.DisplayFor(c => pass)
使用自定义显示模板。
1) 在模型中,添加一个属性例如-
[UIHint("PassFail")]
public decimal Pass { get; set; }
2) 创建显示模板PassFail.cshtml@型号字符串
@if (Model == "1")
{
<text>Pass</text>
}
else
{
<text>Fail</text>
}
3) 现在您可以直接使用
@Html.DisplayFor(e => e.Pass)