2

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は、現在のデータベース コンテンツがエディターに表示されます。問題は、元のテキストがエンコードされたデータベースに送信されると、デコードが必要なときに、エディターで再表示するときにまだエンコードされていると思います。そのため、エディターはエンコードされたタグをテキストとして扱い、既存のタグの周りに新しいタグを配置するため、混乱が生じます。

どんなアイデアでも大歓迎です。これについてさらに説明が必要な場合はお知らせください。

ありがとう。

4

1 に答える 1

2

この質問を提出した直後に、私はこれにちょうどいい量の考えを与えました.

以前@Html.Raw(System.Web.HttpUtility.HtmlDecode(row.Memo))はページに表示するデータをデコードしていたので、エディタで表示する@Html.Raw(System.Web.HttpUtility.HtmlDecode(Memo))代わりに使用でき@Memo、問題が修正されました。

于 2013-02-20T11:22:23.873 に答える