TagBuilder AddCssClass顺序,添加到开头,如何在结尾添加新的Class?
TagBuilder AddCssClass Order, Adds to Beginning, how to Add New Class at the End?
我注意到 Tagbuilder AddCssClass 将标签添加到开头。怎么让它加到最后呢
TagBuilder test = new TagBuilder("div");
toolset.AddCssClass("Number1");
toolset.AddCssClass("Number2");
在这种情况下,Number2 将排在第一位。
查看代码 here,似乎无法使用您的方法将 class 添加到末尾。 AddCssClass 的代码如下所示:
public void AddCssClass(string value)
{
string currentValue;
if (Attributes.TryGetValue("class", out currentValue))
{
Attributes["class"] = value + " " + currentValue;
}
else
{
Attributes["class"] = value;
}
}
幸运的是,TagBuilder 对象公开了 Attributes
,因此我们可以编写一个扩展方法,将值添加到末尾而不是开头:
public static class TagBuilderExtensions
{
public void AddCssClassEnd(this TagBuilder tagBuilder, string value)
{
string currentValue;
if (tagBuilder.Attributes.TryGetValue("class", out currentValue))
{
tagBuilder.Attributes["class"] = currentValue + " " + value;
}
else
{
tagBuilder.Attributes["class"] = value;
}
}
}
如果你有一个 using
用于定义上述扩展方法的命名空间,你可以像这样简单地使用它:
toolset.AddCssClassEnd("Number1");
我注意到 Tagbuilder AddCssClass 将标签添加到开头。怎么让它加到最后呢
TagBuilder test = new TagBuilder("div");
toolset.AddCssClass("Number1");
toolset.AddCssClass("Number2");
在这种情况下,Number2 将排在第一位。
查看代码 here,似乎无法使用您的方法将 class 添加到末尾。 AddCssClass 的代码如下所示:
public void AddCssClass(string value)
{
string currentValue;
if (Attributes.TryGetValue("class", out currentValue))
{
Attributes["class"] = value + " " + currentValue;
}
else
{
Attributes["class"] = value;
}
}
幸运的是,TagBuilder 对象公开了 Attributes
,因此我们可以编写一个扩展方法,将值添加到末尾而不是开头:
public static class TagBuilderExtensions
{
public void AddCssClassEnd(this TagBuilder tagBuilder, string value)
{
string currentValue;
if (tagBuilder.Attributes.TryGetValue("class", out currentValue))
{
tagBuilder.Attributes["class"] = currentValue + " " + value;
}
else
{
tagBuilder.Attributes["class"] = value;
}
}
}
如果你有一个 using
用于定义上述扩展方法的命名空间,你可以像这样简单地使用它:
toolset.AddCssClassEnd("Number1");