Razor视图中的三元字符串比较不起作用

时间:2019-04-24 13:29:22

标签: asp.net-core razor-pages

我有一个Razor视图,我试图在其中应用三元数以使选择字段中的项目显示为选中状态。由于某种原因,即使模型中的字符串值与我要比较的字符串匹配,三元字符串比较似乎也不起作用。

这就是我想要做的事

<select name="accountStatus" class="form-control w-100">
<option>Any</option>
<option value="ACTIVE" @(Model.AccountStatus == "ACTIVE" ? "selected" : "")>Active only</option>
<option value="INACTIVE" @(Model.AccountStatus == "INACTIVE" ? "selected" : "")>Inactive only</option>
</select>

我已经确认Model.AccountStatus的值为'ACTIVE',但是选择默认为'Any'。

我已经在页面上输出了AccountStatus的值,以确认它的使用确实正确。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

从您的三元组返回null,而不是空字符串。如果该属性的值为null,Razor会自动将其删除,但是由于您将其设置为某种值,即使它只是一个空字符串,也会保留下来。

您可以将代码更改为:

<select name="accountStatus" class="form-control w-100">
<option>Any</option>
<option value="ACTIVE" selected="@((Model.AccountStatus =="ACTIVE") ? "selected" : null )">Active only</option>
<option value="INACTIVE" selected="@((Model.AccountStatus =="INACTIVE") ? "selected" : null )">Inactive only</option>
</select>