TinyMCE wysiwyg の内容を取得して、データベース挿入用のコントローラー関数に投稿しようとしています。この設定では、リソースの読み込みに失敗しました: サーバーは、Chrome のエラー コンソールのデータとして /admin/postnewarticle/ ルートを引用して、ステータス 500 (内部サーバー エラー) で応答しました:と常に表示されます。
$.ajax({
url: '/admin/postnewarticle/',
type: 'post',
dataType: 'json',
data: {
content: tinyMCE.get('article-content').getContent(),
title: $('#article-title').val(),
articleType: $('#article-types option:selected').val()
},
success: function (result) {
// success stuff
}
});
Chrome でデバッグするときtinyMCE.get('article-content').getContent()
、Watch Expression として配置すると、ここに目的の値が得られていることがわかります。TinyMCE テキスト領域に記述したものはすべて、<p>
タグでラップされています。「コンテンツ」の値を、HTML タグを含まないランダムな静的文字列値に置き換えると、コントローラー メソッドが正しく実行されます。
これが私がヒットしようとしているコントローラーメソッドです:
[HttpPost]
[Authorize(Roles = "Administrators")]
[ValidateInput(false)]
public JsonResult PostNewArticle(string title, HtmlString content, string articleType)
{
// do stuff
}
ここでの「コンテンツ」のデータ型は HtmlString であることに注意してください...これは、最終的に私をここに導いたいくつかの調査を行った後、単なる文字列から変更されました。ただし、文字列であろうと HtmlString であろうと、コンテンツの値に HTML タグが含まれている場合、アクションは実行されません。
どんな助けでも大歓迎です!