Html.Raw中的ASP MVC颜色字符串

时间:2019-04-23 07:25:36

标签: asp.net-mvc razor

我想比较两个字符串。每个index中是否存在差异,我想用红色(如果不匹配)或绿色(如果匹配)为该特定的char上色。

            <li>
                @for (int i = 0; i < item.AnswersList.Count; i++)
                {
                    var answerArray = item.AnswersList[i].Output.ToArray();
                    var outputArray = item.OutputList[i].Output.ToArray();

                    for (int j = 0; j < answerArray.Length; i++)
                    {
                        if (answerArray[j] == outputArray[j])
                        {
                            @Html.Raw( How to print colorful char here?);
                        }
                    }
                }
            </li>

彩色的string必须在<li>标签中排成一行。

编辑:

我对此代码进行了修改:

<div style="color: green;">
     @Html.Raw(outputArray[j])
</div>

但是我得到这样的输出:

enter image description here

如何在<li>标签中使它成为一个单词?

3 个答案:

答案 0 :(得分:1)

尝试以下操作:

<li style="display: flex;>
   @for (int i = 0; i < item.AnswersList.Count; i++)
   {
      var answerArray = item.AnswersList[i].Output.ToArray();
      var outputArray = item.OutputList[i].Output.ToArray();

      for (int j = 0; j < answerArray.Length; i++)
      {
         if (answerArray[j] == outputArray[j])
         {
            <span style="color: green;">
              ...
            </span>
         }
      }
   }
</li>

答案 1 :(得分:1)

我希望你需要这个:

       <li>
            @for (int i = 0; i < item.AnswersList.Count; i++)
            {
                var answerArray = item.AnswersList[i].Output.ToArray();
                var outputArray = item.OutputList[i].Output.ToArray();

                for (int j = 0; j < answerArray.Length; i++)
                {
                    bool isMatch = answerArray[j] == outputArray[j];
                    <div style="color: @(isMatch ? "green" : "red");">
                        @Html.Raw(outputArray[j])
                    </div>
                }
            }
        </li>

UPD :如果一行中需要所有字符,则使用span代替div

UPD2:(尝试,但没有新行):

<span style="color: @(isMatch ? "green" : "red");margin:0;padding:0">@Html.Raw(outputArray[j])</span>

答案 2 :(得分:1)

这应该工作完美。只需确保您在final String REG_PATTERN_VALID_DECIMAL_NUMBER = "((?<!\\S)-?\\d+(?:\\.\\d+)?(?!\\S))|."; 标签周围不留空格,就像这样:

<span>