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()マークアップを返したいのですが、代わりにオブジェクトタイプを次のように返します文字列。

クラスをまったく気にせずに、HtmlGenericControlHTML の開始タグと終了タグを使用して大量の文字列を生成するだけでこれを行うことができますが、このコードの残りの部分は非常に複雑で、エラーの余地がたくさんあります...達成できれば上記で探しているものは、コーディングがはるかに簡単です!

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 に答える