0

我試圖從VB.NET Web方法生成一些HTML代碼並將其作爲文本返回。如何將函數生成的HTML控件作爲包含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標籤的整個負載,但是這個代碼的其餘部分是相當複雜的,有大量的錯誤的餘地..如果我能夠達到上面的要求,編碼會更簡單!

回答

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 

GOOD LUCK !!

+0

優秀。謝謝。 –

相關問題