を呼び出すAJAXを作りましたIActionResult
。しかし、モデルを渡すことはできません。文字列を渡すだけです。私の質問は、代わりにモデルを渡す方法ですか?
AJAX
$('#CreateLesson').on('submit', function (e) {
e.preventDefault();
var lesson = $(this).serialize();
$.ajax({
type: "POST",
url: '@Url.Action("Create", "Lessons")',
dataType: "json",
async: false,
contentType: "application/json; charset=utf-8",
data: JSON.stringify(lesson),
success: function (data) { alert("succes"); },
error: function (error) {
console.log(error);
alert(JSON.stringify(error));
}
});
});
コントローラ
[HttpPost]
//[ValidateAntiForgeryToken]
public IActionResult Create([FromBody]string lesson)
{
if (ModelState.IsValid)
{
_context.Add(lesson);
_context.SaveChanges();
return PartialView("_MyLessons", lesson);
}
return RedirectToAction("AjaxMetho", "Account");
//return PartialView("Create");
}
テキストが出てくるのは変です。モデルよりも多くのフィールドがあります。私のモデルには、名前、グレード、目的、説明しかありません。
"Name=C%23%20vvvvvv&grade=1&SubID=123&BarCode=vvvvvvnnnnnnnnnnnnnn&Objectives=ABC%40abc123&Description=ABC%40abc123&__RequestVerificationToken=CfDJ8Ekvaq-NSQtAn7SGG0DJv7-ETDuOvAlwPoMzNMGyUSfJ6RRc2UY3KRxQbq0VEzBRE-YgHTSeMtnKY8DqTKXk8GoGsvkcB87xEM0-G5zbBO6BtoWLncH1ROE7iE2kiUbjBsPg_pwzZpXPUhS9_Nb14ay02l-N_DSULUT22cTa8zY5zpcyHY5Nsp-mN7tfLYiOGA"
文字列化せずにモデルを渡そうとしIActionResult
、文字列の代わりにレッスンモデルを取得するようにパラメーターを変更すると、null が返されます!!
モデルを問題なく渡すにはどうすればよいですか?