我正在从 jQuery 调用控制器端点,问题是端点接收到的所有参数均为 null。
javascript
:
$.ajax({
url: '/Test/SendEmailWithCode',
type: "POST",
async: false,
contentType: "application/json",
data: JSON.stringify({
mailTo: mailTo,
subject: subject,
message: message,
digit32: digit32,
digit16: digit16,
code: encrypt(generateCode(), digit32, digit16).toString()
}),
success: function (data) {
$("#userCodeData").val("data");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
}
});
Controller
:
[HttpPost]
public JsonResult SendEmailWithCode(string mailTo, string subject, string message, string digit32, string digit16, string code)
{
var result = _emailService.SendEmailWithCode(mailTo, subject, message);
return new JsonResult(result);
}
显然一切都很好,但没办法,控制器中的值始终为空。
有什么帮助吗?
编辑1:
奇怪的是,如果我用 GET 替换 POST 调用(在 javascript 中输入“GET” + 在控制器中输入 [HttpGet])值会被正确接收,但事实并非如此,我在控制器中发送电子邮件,所以调用类型应为 POST。
尝试像下面这样修改你的ajax:
$.ajax({
url: '/Test/SendEmailWithCode',
type: "POST",
data:{
mailTo: mailTo,
subject: subject,
message: message,
digit32: digit32,
digit16: digit16,
code: encrypt(generateCode(), digit32, digit16).toString()
},
success: function (data) {
$("#userCodeData").val("data");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
}
});
结果: