如何将函数生成的HTML控件作为包含HTML标记的文本字符串返回



我正在尝试从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标记生成一大堆字符串,但这段代码的其余部分相当复杂,有很大的错误空间。。。如果我能实现上面我想要的目标,那么编写代码会简单得多!

为了做到这一点,代码应该如下

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

祝你好运!!

最新更新