如何在CSHTML中使用转义引号

时间:2018-12-10 07:01:57

标签: html asp.net-mvc razor

如何在.cshtml文件中转义引号。我使用剃刀MVC。我在foreach中使用If

@for (int i = 1; i <= 4; i++)
{
    <div @(i == 1 ? "class=\"tab-pane active\"" : "class=tab-pane")>
    </div>
}

我使用斜杠将引号转义,但效果不佳。

结果<div class="&quot;tab-pane" active&quot;=""></div>

我希望1的结果为<div class="tab-pane active"></div>

2 个答案:

答案 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)?