Verwenden von TagBuilder zum Rendern von HTML auf der Seite
Posted: 05 Jan 2025, 07:00
Ich verwende TagBuilder, um HTML zurückzugeben. Was passiert, ist, dass der HTML-Code als Text gerendert wird. Dies ist Teil des Codes:
Code: Select all
private string RenderAlert()
{
//
var wrapper = new TagBuilder("div");
//merge attributes
wrapper.MergeAttributes(htmlAttributes != null ? HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes) : null);
if (alertStyle != AlertStyle.Default)
wrapper.AddCssClass(alertStyle.ToString().ToLower());
wrapper.AddCssClass("alert-box");
//build html
wrapper.InnerHtml.AppendHtml(text);
//Add close button
if (!hideCloseButton)
wrapper.InnerHtml.AppendHtml(RenderCloseButton());
var stringWriter = new System.IO.StringWriter();
wrapper.WriteTo(stringWriter, HtmlEncoder.Default);
var tagBuilderIsFinallyAStringNow = stringWriter.ToString();
return tagBuilderIsFinallyAStringNow;
}
private static string RenderCloseButton()
{
//x
var closeButton = new TagBuilder("a");
closeButton.AddCssClass("close");
closeButton.Attributes.Add("href", "");
closeButton.InnerHtml.AppendHtml("x");
var stringWriter = new System.IO.StringWriter();
closeButton.WriteTo(stringWriter, HtmlEncoder.Default);
var tagBuilderIsFinallyAStringNow = stringWriter.ToString();
return tagBuilderIsFinallyAStringNow;
}
public override string ToString()
{
return RenderAlert();