4

標準の HTMLEditorExtender コントロール (ajax コントロール ツールキットの一部) を使用しています。元の pageLoad で、html (>p<、>br<、>strong<、>img< タグを含む) を入力します。HTMLEditorExtender コントロールで正常に表示されます。次に、(updatepanel を介して) 非同期ポストバックを実行すると、すべての >img< タグは、画像を表示する代わりに実際の html として表示されますが、他のすべてのタグは引き続き正しく表示されます。

非同期ポストバック後の HTMLEditorExtender コントロールのマークアップは次のとおりです。エンコードされた値の前 (つまり lt; および gt;)

更新: このコードを pageLoad イベントに入れると問題なく動作しますが、セキュリティにどのような影響があるのか​​心配です。

if (IsPostBack)
{
    txtBookingConfirmation.Text = Server.HtmlDecode(txtBookingConfirmation.Text);
}

コントロールがこれを行うのを防ぐ方法を教えてください。

前もって感謝します

4

2 に答える 2

7

これが唯一の解決策のようで、まだ問題は発生していません。

if (IsPostBack)
{
    txtBookingConfirmation.Text = Server.HtmlDecode(txtBookingConfirmation.Text);
}
于 2012-05-08T09:56:48.537 に答える
0

私はこれと同じ問題を抱えています。ページにポスト バックするボタンをクリックするたびに、HTMLEditorExtender はテキスト ボックスの内容を HTML マークアップが表示されている場所に変更します。「&」をすべて「& amp;」に置き換えているようです。したがって、たとえば、すべての「& lt;」テキスト内の値が「& amp;lt;」に変更されています。これは「& gt」でも発生しています。2012 年 5 月 1 日にリリースされた AJAX ツールキットにアップグレードしました。それがどのバージョンかはわかりません。

「& amp;」にスペースを入れる必要がありました。それらが私の投稿にレンダリングされていたので、など。これを見るときは、スペースを空けてください。

于 2012-05-03T20:46:57.310 に答える