有没有办法将两个IHtmlStrings的输出组合成一个IHtmlString实例?

时间:2010-10-18 23:56:26

标签: asp.net-mvc html-helper

我正在编写一个ASP.NET MVC Html Helper,基本上需要2个HTML Helper返回IHtmlStrings并将它们组合在一起,并将它们作为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。

所以我的问题是,我如何从两个IHtmlStrings中获取输出并将它们组合成一个IHtmlString?

1 个答案:

答案 0 :(得分:5)

像这样:

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