在 ASP.NET Core 视图中,我有以下内容:
<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 开始,您可以使用TagHelper 输出扩展 https://github.com/aspnet/Mvc/blob/release/2.2/src/Microsoft.AspNetCore.Mvc.TagHelpers/TagHelperOutputExtensions.csMicrosoft 提供的用于在一行代码中添加“活动”CSS 类的类。
using Microsoft.AspNetCore.Mvc.TagHelpers;
using System.Text.Encodings.Web;
...
public override void Process(TagHelperContext context, TagHelperOutput output)
{
...
output.AddClass("active", HtmlEncoder.Default);
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)