在ASP中构建htmlstring.净MVC



我有一个扩展方法,需要返回一个HtmlString。该方法有一个循环,将建立HtmlString,但是HtmlString对象没有Append方法,不允许使用+操作符连接,所以我不确定我将如何构建HtmlString。

我想使用StringBuilder,但它没有一个ToHtmlString方法…

对此有什么解决方案或模式吗?

为什么不直接在stringbuilder中构建字符串,然后

return MvcHtmlString.Create(sb.ToString());

我认为你想使用TagBuilder。参见使用TagBuilder类构建这样的HTML帮助器:

// Create tag builder
var builder = new TagBuilder("img");
// Create valid id
builder.GenerateId(id);
// Add attributes
builder.MergeAttribute("src", url);
builder.MergeAttribute("alt", alternateText);
builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
// Render tag
return builder.ToString(TagRenderMode.SelfClosing);

您可以看看用于创建HTML标记的fubu派生。下面是一个SO问题,它讨论了一些关于它的用法。

您可以自己编写ToHtmlString()方法作为StringBuilder的扩展方法。

有几个解决方案,包括使用TagBuilder,但使用Html.Raw()对我来说工作得很好:

public static IHtmlString HtmlMethod(this HtmlHelper htmlhelper, Object object)
{
    var sb = new StringBuilder();
    foreach (var item in object)
    {
        sb.Append(object.outputStr)
    }
    return htmlHelper.Raw(sb.ToString());
}

相关内容

  • 没有找到相关文章

最新更新