如何在.cshtml文件中转义引号。我使用剃刀MVC。我在foreach中使用If
@for (int i = 1; i <= 4; i++)
{
<div @(i == 1 ? "class=\"tab-pane active\"" : "class=tab-pane")>
</div>
}
我使用斜杠将引号转义,但效果不佳。
结果<div class=""tab-pane" active"=""></div>
我希望1的结果为<div class="tab-pane active"></div>
答案 0 :(得分:2)
您确实应该只插入/打印/编码所需的内容,而不要尝试逃避一切。更少的代码,您不必重复类。.nice和DRY。
@for (int i = 1; i <= 4; i++)
{
var active = i == 1 ? "active" : string.Empty;
<div class="tab-pane @active">
</div>
}
它更具可读性和可维护性。
输出:
<div class="tab-pane active">
</div>
<div class="tab-pane ">
</div>
<div class="tab-pane ">
</div>
<div class="tab-pane ">
</div>
答案 1 :(得分:2)
只需在class
属性内使用三元运算符,无需重复两次:
@for (int i = 1; i <= 4; i++)
{
<div class="@(i == 1 ? "tab-pane active" : "tab-pane")">
</div>
}
参考:How to use ternary operator in razor (specifically on HTML attributes)?