如何更改绑定到 Razor 页面上模型的特定文本的字体颜色?

How do I change the font color of a specific text bound to a model on a Razor page?

我正在构建一个 ASP.NET 核心 Web 应用程序,并希望将结果中的某些文本设置为 table 与其余 table 不同的颜色。例如:

我正在尝试在 JavaScript 中执行此操作,但似乎 运行 遇到了问题,因为在使用所选参数单击“搜索”按钮后,数据是从模型在页面上生成的。这是我的 HTML Razor 页面中的内容:

@foreach (var item in Model.SecurityLog)
{
  <tr>
  <td style="width:7% !important" id="eventType">
      @Html.DisplayFor(modelItem => item.EventType.Name)
  </td>
  <td style="width:9% !important">
      @Html.DisplayFor(modelItem => item.ContactName)
  </td>
}

这是 Razor 页面上的 JavaScript 代码:

 var text = document.getElementById("searchString");
 var str = text.innerHTML;
 var reg = /RL Solution Required/ig;

 var toStr = String(reg);
 var search = (toStr.replace('\/g', '|')).substring(1);
 var searches = search.split("|");

 if (searches.indexOf("RL Solution Required") > -1) {
    str = str.replace(/RL Solution Required/g, '<span style="color:red;">R/L Solution Required</span>');
 }
 document.getElementById("searchString").innerHTML = str;

我正在尝试将 RL Solution Required 字体设置为红色。我没有遇到此代码的任何错误,但字体是黑色的。 提前致谢,如有任何帮助,我们将不胜感激。

您遇到的问题可能有多种原因。

例如:我看到您在某些 css 中使用了 !important。如果您有另一个颜色 属性 也设置为 !important 的 span 标签,它将覆盖您插入到 html.

中的颜色

最好的办法是在浏览器的开发工具中检查元素并尝试修改 css 以正确更新那里的颜色。如果您可以让它在那里更新并描述您所做的更改,将更容易缩小您在这里遇到的具体问题的范围。

如果您能够使用 css 正确修改元素并且需要在生成的代码中更改某些内容,您也许可以从那里着手解决。

您不需要为此使用 Javascript。只需使用 Razor。

@foreach (var item in Model.SecurityLog)
{
  <tr>
  <td style="width:7% !important">        
      @{
        string eventType = item.EventType.Name;
      }
      @if(eventType.Contains("RL Solution Required"){
        <span style="color:red;">@Html.DisplayFor(modelItem => eventType)</span>
      }else{
        @Html.DisplayFor(modelItem => eventType)
      }          
  </td>
  <td style="width:9% !important">
      @Html.DisplayFor(modelItem => item.ContactName)
  </td>
}