代码之家  ›  专栏  ›  技术社区  ›  lomaxx

有没有办法将两个IHtmlString的输出合并为一个IHtmlString实例?

  •  2
  • lomaxx  · 技术社区  · 14 年前

    我正在编写一个ASP.NET MVC Html Helper,它基本上包含两个返回IHtmlString并将它们组合在一起的Html Helper,还将它们作为IHtmlString返回,如下所示:

    //this doesn't work
    public static IHtmlString CompositeHelper(this HtmlHelper helper, string data)
    {
        //GetOutput returns an IHtmlString
        var output1 = new Component1(data).GetOutput();
        var output2 = new Component2(data).GetOutput();
    
        return output1 + output2
    }
    

    现在我知道这是行不通的,因为IHtmlString是一个带有复杂类型实现的接口,但是如果我

    return output1.ToHtmlString() + output2.ToHtmlString()
    

    我只是得到一个普通字符串,当我从HtmlHelper返回时,它会被HtmlEncoded。

    1 回复  |  直到 14 年前
        1
  •  5
  •   SLaks    14 年前

    这样地:

    return new HtmlString(output1.ToString() + output2.ToString());