将字符串转换为布尔值以在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"被解释为真值,并利用我可用的布尔显示模板。

将字符串转换为布尔值以在MVC3中使用布尔值显示模板

您可以在视图中创建一个布尔变量:

@{ 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)