5

ページにasp.netのdetailsviewコントロールがあります。データベースフィールドの生のテキストが常に表示され、テキスト内のhtmlは解釈されないため、太字のmytextだけでなく<b> mytext</b>が表示されることに気付きました。

とにかく、返されるデータのhtmlを解釈するためのコントロールを取得する方法はありますか

よろしく溶ける

4

1 に答える 1

8

コントロールのコードを投稿できますか? 基本は、HtmlEncode プロパティを false に設定する必要があることです。これは、ラベルとテキストボックスがエンコーディングを処理する方法の違いによるものです。これは、誰かがこれらのフィールドに入力した可能性のある悪意のあるスクリプトからユーザーを保護するためのものです.

フィールドを自動生成するように設定している場合 (デフォルト)、代わりにBoundFieldまたはTemplateFieldに変更し、問題のあるフィールドのHtmlEncode プロパティを false に設定する必要があります。

MSDN で個々のフィールドのコード サンプルを確認できます。簡単な例を次に示します。

<asp:DetailsView runat="server" AutoGenerateRows="False">
  <Fields>
    <asp:BoundField DataField="ProductName" HeaderText="Product" />
    <asp:BoundField DataField="CategoryName" HeaderText="Category" />
    <asp:BoundField DataField="HTMLField" HeaderText="HTML" HtmlEncode="false" />
  </Fields>
</asp:DetailsView>
于 2010-01-10T15:50:07.600 に答える