我有一个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的值,以确认它的使用确实正确。
我在做什么错了?
答案 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>