我正在尝试从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
祝你好运!!