【发布时间】:2018-10-29 04:06:17
【问题描述】:
我在使用 antiforgerytoken 将转换后的 json 对象发布到控制器时遇到问题。传递的参数questionnaireViewModel 为空。
我已经尝试添加到 ajax:
contentType: "application/json",
或
headers: { '__RequestVerificationToken': token },
但什么都没有改变。你能帮帮我吗?
@using (Html.BeginForm("PostQuestionnaire", "Home", FormMethod.Post, new { id = "__AjaxAntiForgeryQuestionnaireForm" }))
{
@Html.AntiForgeryToken()
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult PostQuestionnaire(QuestionnaireViewModel questionnaireViewModel)
{ ... }
$('#submitBtn').on('click', function () {
var questionnaireVM = JSON.stringify({
'questionnaireViewModel': {
'QuestionnaireId': $('#QuestionnaireId').val(),
'Revision': $('#Revision').val(),
'IPAddress': '',
}
});
var form = $('#__AjaxAntiForgeryQuestionnaireForm');
var token = $('input[name="__RequestVerificationToken"]', form).val();
$.ajax({
type: "POST",
url: "./PostQuestionnaire",
data: {
__RequestVerificationToken: token,
questionnaireVM
},
success: function (result) {
if (result.success) {
console.log("success");
} else {
console.log("fail");
}
},
error: function (request) {
console.log("error");
}
});
【问题讨论】:
标签: .net json ajax antiforgerytoken