我想根据bool在按钮上下文中添加一个图标。
如何在c绑定的bool开关中实现HTML标记?
<button type="button">
@(SwitchBool? "Save" : @"<i class='u0022'fa fa-pen'u0022'></i>")
</button>
我不认为C#喜欢对三进制的输出有不同的类型。但是,您可以构建您想要的任何字符串,并将其转换为MarkupString
@((MarkupString)(SwitchBool ? "Save" : "<i class='fa fa-pen'/>"))
不过,我不喜欢这样,因为你真的必须处理整条线才能理解它在做什么。我宁愿多写几行来写一个条件语句。另外,给你的bool一个有意义的名字:
<button>
@if (ReadyToSave)
{
<span>"Save"</span>
}
else
{
<i class='fa fa-pen'/>
}
</button>
if . . . else
可以被塞进一行,但我真的不建议这样做。
你可以这样做:
<button type="button" @onclick="() => SwitchBool = !SwitchBool">
@if(SwitchBool)
{
<text>Save</text>
}
else
{
<i class="fa fa-pen"></i>
}
</button>
@code {
private bool SwitchBool;
}