次のように、管理者の html エディターからサーバー コントローラーにマークアップを投稿しています。
var dataString = 'id=' + id +
'&name=' + name +
'&nameEngl=' + nameEngl +
'&description=' + description +
'&descriptionEngl=' + descriptionEngl +
'&imageName=' + imageName +
'&previewImageName=' + previewImageName +
'&types=' + types +
'&bottomAreaHtml=' + bottomAreaHtml +
'&bottomAreaHtmlEngl=' + bottomAreaHtmlEngl +
'&slug=' + slug +
'&__RequestVerificationToken=' + encodeURIComponent($("input[name=__RequestVerificationToken]").val());
$.ajax({
type: "POST",
url: $("#EditProjectActionUrl").val(),
data: dataString,
success: function (result) {
RefreshProjectsList();
form.find("#divStatus-p").hide();
form.closest('.modal-popup').dialog('close');
}
});
ご覧のとおりdataString
、マークアップを含む大きな文字列がありますが、ブラウザ リクエスト テレメトリを介して、サーバーに正しく送信されていることがわかります。
サーバー上で、コントローラーのアクションを介して投稿されたデータを受信しています:
[Authorize]
[ValidateAntiForgeryToken]
[ValidateInput(false)]
[HttpPost]
public ActionResult EditProject(string id, string name, string nameEngl, string description, string descriptionEngl, string customCSS, string imageName, string previewImageName, string types, string bottomAreaHtml, string bottomAreaHtmlEngl, string slug)
{
メソッド呼び出しの時点で、デフォルトのバインダーがすべてのパラメーターを設定します。bottomAreaHtml
パラメーターにクリップされた (完全ではない) マークアップ文字列が含まれる問題。ここで何が問題なのですか?