It seems to me that there are major breaking changes in TagBuilder as of beta7 with no mention about them in the announcements repo.
Specifically .ToString no longer renders the tagbuilder, it just returns the name of the type.
previously we could do things like this inside our HtmlHelper extensions to build up nested html elements:
var li = new TagBuilder("li");
var span = new TagBuilder("span");
li.InnerHtml = span.ToString();
li.InnerHtml = new HtmlString(span.ToString())
TagBuilder now implements
IHtmlContent, you should be able to use it directly, without doing
var li = new TagBuilder("li"); li.AddCssClass("inactive"); var span = new TagBuilder("span"); span.SetInnerText(somestring); li.InnerHtml = span;
The real problem with the current implementation in Beta 7 is that there is no easy way to append two child tag builder contents to a parent one. You can follow the discussion on GitHub.
The current proposal is to make
InnerHtml not assignable, but support
Append instead. This is targeted to be implemented in Beta 8.
The workaround in Beta 7 is to call
parent.WriteTo with a
StringWriter to convert it to a