0

我正在尝试从 VB.NET Web 方法生成一些 HTML 代码并将其作为文本返回。

这是一个示例标记:

<ul>
    <li>234: this is an item</li>
    <li>456: another item</li>
</ul>

因此我有一些VB:

Dim rList As New HtmlGenericControl("UL") ' << create an HTML list container

    Try ' looping through a dictionary of item data
         For j = 0 To UBound(d("itemNo")) ' loiop through all individual item data
             Dim Item = d("itemNo")(j)
             Dim itemName =  d("itemName")(j)
             Dim liItem As New HtmlGenericControl("li") ' << creates an HTML list item
             liItem.InnerHtml += itemNo & ":" & itemName 
             rList.InnerHtml += liItem 
         Next
     Catch ex as Exception
         ' fail case
     End Try

现在,这将完美地生成所有 HTML 标记和内容。如果我把它写到一个页面上,我可以很简单地做到这一点。

但是...我不想这样做,我想以某种方式将上述代码创建的实际 HTML 标记作为文本字符串返回,即,我想return rList.toString()返回标记,但它只是将对象类型返回为一个字符串。

我可以做到这一点,根本不用担心HtmlGenericControl类,只需生成带有打开和关闭 HTML 标记的整个字符串负载,但是这段代码的其余部分非常复杂,并且有很大的错误空间......如果我能实现我在上面寻找的东西编码起来会简单得多!

4

1 回答 1

0

为此,代码应如下所示

Dim rList As New HtmlGenericControl("UL") 

Try 
     // Existing stuff
    Dim stringwriter As New System.IO.StringWriter()
    Dim writer As New HtmlTextWriter(stringwriter)
    rList.RenderControl(writer)
    Return stringwriter.ToString()

 Catch ex as Exception
     ' fail case
 End Try

祝你好运 !!

于 2012-10-14T12:56:57.527 回答