gpt4 book ai didi

c# - TagBuilder.MergeAttributes 未按预期工作

转载 作者:太空狗 更新时间:2023-10-29 17:27:40 30 4
gpt4 key购买 nike

我正在尝试制作一个 HtmlHelper,我需要允许用户将他们自己的自定义属性添加到 html 标记中。

我尝试使用 TagBuilder 类来执行此操作,但似乎并没有合并属性,而是替换了它们。

这是我在 C# 中所做的:

public static MvcHtmlString List(HtmlHelper helper, object htmlAttributes)
{
var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);

var tag = new TagBuilder("div");
tag.AddCssClass("myClass");
tag.MergeAttributes(attributes, false);

// tag class property has value "myClass", not "myClass testClass"

return new MvcHtmlString("<div>");
}

这是我的观点:

@Html.List(new { @class = "testClass" })

我做错了什么?

最佳答案

MergeAttributes 覆盖标签上已有的属性,AddCssClass 将名称附加到类值中。

所以只需将其调换一下就可以了;

    tag.MergeAttributes(attributes, false);
tag.AddCssClass("myClass");

AddCssClass 将附加到合并在其上方的类名。

关于c# - TagBuilder.MergeAttributes 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12635590/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com