cshtml ページで ckeditor を使用してデータベースにコンテンツを入力しています。このコンテンツは後で html タグを含むページに表示され、テキストが読みやすくなります。テキストエリアを介してコンテンツを入力しているため、入力している html タグ<h1><p>
が潜在的に危険であるというエラーが表示されます。
RequestValidation を false にせずにこれをバイパスするには、cinfig.js ファイルで次のように設定しました。
config.htmlEncodeOutput = true;
ページに表示するときに、データベースからデータをデコードしています。
@Html.Raw(System.Web.HttpUtility.HtmlDecode(row.Memo))
これはうまくいきます。データベースのコンテンツを 2 回目に編集しようとしたときにのみ、問題が発生します。
私は次のようにエディタに表示しています:
<textarea class="ckeditor" id="editor1" name="Memo" rows="25" cols="120">@Memo</textarea>
テキストエリアで@Memo
は、現在のデータベース コンテンツがエディターに表示されます。問題は、元のテキストがエンコードされたデータベースに送信されると、デコードが必要なときに、エディターで再表示するときにまだエンコードされていると思います。そのため、エディターはエンコードされたタグをテキストとして扱い、既存のタグの周りに新しいタグを配置するため、混乱が生じます。
どんなアイデアでも大歓迎です。これについてさらに説明が必要な場合はお知らせください。
ありがとう。