Razor 中的一行 If 语句不起作用
One line If statement in Razor not working
这条语句准确地输出 HTML,我的意图是将其呈现为 HTML。
<td>@(part.IsVocal ? "<span class='badge bg-success'>Yes</span>" : "<span class='badge bg-danger'>No</span>") /
@(part.IsInstrumental ? "<span class='badge bg-success'>Yes</span>" : "<span class='badge bg-danger'>No</span>")</td>
它在浏览器中呈现为:
<td>
"<span...."
" / "
"<span...."
</td>
所以它将它们呈现为字符串,而不是代码。
像其他人一样使用 MarkupString
<td>@(part.IsVocal ? (MarkupString)"<span class='badge bg-success'>Yes</span>" : (MarkupString)"<span class='badge bg-danger'>No</span>") /
@(part.IsInstrumental ? (MarkupString)"<span class='badge bg-success'>Yes</span>" : (MarkupString)"<span class='badge bg-danger'>No</span>")</td>
请注意,您可以通过多种方式使用 MarkupString,包括从属性中获取 MarkupString 值。您可以使上面的代码更短更紧凑...我刚刚回答了您的问题...
更好的方法是:
@if(part.IsVocal)
{
<span class='badge bg-success'>Yes</span>
}
else
{
<span class='badge bg-danger'>No</span>
}
等等..
这条语句准确地输出 HTML,我的意图是将其呈现为 HTML。
<td>@(part.IsVocal ? "<span class='badge bg-success'>Yes</span>" : "<span class='badge bg-danger'>No</span>") /
@(part.IsInstrumental ? "<span class='badge bg-success'>Yes</span>" : "<span class='badge bg-danger'>No</span>")</td>
它在浏览器中呈现为:
<td>
"<span...."
" / "
"<span...."
</td>
所以它将它们呈现为字符串,而不是代码。
像其他人一样使用 MarkupString
<td>@(part.IsVocal ? (MarkupString)"<span class='badge bg-success'>Yes</span>" : (MarkupString)"<span class='badge bg-danger'>No</span>") /
@(part.IsInstrumental ? (MarkupString)"<span class='badge bg-success'>Yes</span>" : (MarkupString)"<span class='badge bg-danger'>No</span>")</td>
请注意,您可以通过多种方式使用 MarkupString,包括从属性中获取 MarkupString 值。您可以使上面的代码更短更紧凑...我刚刚回答了您的问题...
更好的方法是:
@if(part.IsVocal)
{
<span class='badge bg-success'>Yes</span>
}
else
{
<span class='badge bg-danger'>No</span>
}
等等..