在ASP.NET Core View 中,我具有以下内容:

<div class="message" message=""></div>

我是一个带有以下TagHelper的Tag Helper:
[HtmlTargetElement("div", Attributes = MessageName)]
public class MessageTagHelper : TagHelper {

  private const String MessageName = "message";

  [HtmlAttributeName(MessageName)]
  public String Message { get; set; }

  [HtmlAttributeNotBound, ViewContext]
  public ViewContext ViewContext { get; set; }


  public override void Process(TagHelperContext context, TagHelperOutput output) {

    String message;
    Boolean defined = ViewContext.HttpContext.Request.Cookies.TryGetValue("_message", out message);

    if (defined) {
      ViewContext.HttpContext.Response.Cookies.Delete("_message");
      output.Attributes.Add("class", "active");
      output.Content.Append(message);
    }
  }
}

在以下代码行中,我需要添加“active”作为CSS类。
output.Attributes.Add("class", "active");

但是,这没有任何作用。消息仅与“消息”类一起保留。

我想念什么?

最佳答案

从ASP.NET Core 2.1开始,您可以使用Microsoft提供的TagHelperOutputExtensions类在一行代码中添加“ Activity ” CSS类。

using Microsoft.AspNetCore.Mvc.TagHelpers;
using System.Text.Encodings.Web;
...
public override void Process(TagHelperContext context, TagHelperOutput output)
{
    ...
    output.AddClass("active", HtmlEncoder.Default);
    ...
}

关于c# - 将CSS类添加到TagHelper中的html元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40268536/

10-11 02:30