如何从字符串创建 HtmlTag
How to create HtmlTag from String
我正在使用 HTMLTags 库编写一些 MVC Html Helper classes。但是,我不想从头开始编写所有内容,而是想为某些代码利用现有的 MVC Html 扩展帮助程序方法。问题是我无法弄清楚如何将 MVCHtmlString 或 String 解析为 HTMLTag.
我偶然发现了一个旧的 article,它确实提到了 HTMLTags 库是使用 Html Agility Pack 实现的,但我在新版本中找不到这种方法。
有人可以帮助我解析字符串并将其转换为 Html 标记 class 吗?
我最终创建了自己的扩展方法以将 MvcHtmlString 转换为 HtmlTag。
public static HtmlTag ToHtmlTag(this MvcHtmlString html)
{
HtmlTag htmlTag = null;
var doc = new HtmlDocument();
doc.LoadHtml(html.ToHtmlString());
var tag = doc.DocumentNode.FirstChild;
if (tag != null)
{
htmlTag = new HtmlTag(tag.Name);
foreach (var attribute in tag.Attributes)
{
htmlTag.Attr(attribute.Name, attribute.Value);
}
}
return htmlTag;
}
我希望 HtmlTags 库将包含一些解析字符串的方法,但它没有,这在我看来可能是第二好的方法。
现在我可以像这样简单地调用这个扩展方法
var tag = html.TextBoxFor(expression, (String) null).ToHtmlTag();
我正在使用 HTMLTags 库编写一些 MVC Html Helper classes。但是,我不想从头开始编写所有内容,而是想为某些代码利用现有的 MVC Html 扩展帮助程序方法。问题是我无法弄清楚如何将 MVCHtmlString 或 String 解析为 HTMLTag.
我偶然发现了一个旧的 article,它确实提到了 HTMLTags 库是使用 Html Agility Pack 实现的,但我在新版本中找不到这种方法。
有人可以帮助我解析字符串并将其转换为 Html 标记 class 吗?
我最终创建了自己的扩展方法以将 MvcHtmlString 转换为 HtmlTag。
public static HtmlTag ToHtmlTag(this MvcHtmlString html)
{
HtmlTag htmlTag = null;
var doc = new HtmlDocument();
doc.LoadHtml(html.ToHtmlString());
var tag = doc.DocumentNode.FirstChild;
if (tag != null)
{
htmlTag = new HtmlTag(tag.Name);
foreach (var attribute in tag.Attributes)
{
htmlTag.Attr(attribute.Name, attribute.Value);
}
}
return htmlTag;
}
我希望 HtmlTags 库将包含一些解析字符串的方法,但它没有,这在我看来可能是第二好的方法。
现在我可以像这样简单地调用这个扩展方法
var tag = html.TextBoxFor(expression, (String) null).ToHtmlTag();