HTMLマークアップを作成するためにjqueryテキストエディタープラグインを使用しています。テキスト エディターで作成されたマークアップを js 変数で取得し、その変数を ajax 呼び出しを使用してサーバーにポストします。
cshtml でマークアップします。
<div>
<div id="textEditor">@Html.Raw(Model.htmlMarkUp)</div>
</div>
<input type="button" value="Save" onclick="SaveChanges();" />
JS:
$(document).ready(function () {
$('#textEditor').jqte();
});
function SaveChanges(){
var txtContent = $(".jqte_editor").html();//.jqte_editor is the div added by plugin
var path = '/Pages/saveChanges';
$.ajax({
type: "POST",
url: path,
data: { htmlMarkUp: txtContent },
success: function (result) { alert(result) },
error: function () { }
});
}
モデル:
public class MyModel
{
public string htmlMarkUp{ get; set; }
}
コントローラ:
public string saveChanges(MyModel oModel)
{
....
}
問題:
プラグインで提供されている美化ツールを使用しない限り、アクションの結果は正しく呼び出されます。つまり、テキスト エディターで単純なプレーン テキストを記述した場合、ajax 呼び出しは正しく機能しますが、太字ツールなどのツールを使用するとすぐに呼び出されます。 ajax 呼び出しが機能しなくなります。
最初は、これは web 構成の json サイズの制限によるものだと思いましたが、それも問題ではありません。
json サイズを指定するために、web.config に次のように記述しました。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="5000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
この問題は、マークアップ サイズとは関係ありません。問題は、テキスト エディター プラグインの太字斜体のようなツールを使用する場合です。
何がうまくいかないのか
前もって感謝します。