【发布时间】:2021-02-09 00:24:41
【问题描述】:
我有以下控制器方法:
[HttpPost]
public IActionResult AddNewMessage(string recipientUserId, string message)
{
var currentLoggedInUserId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
_chatMessageRepository.AddNewMessage(currentLoggedInUserId, recipientUserId, message);
return Ok();
}
我正在尝试使用以下 JQuery 代码向其发送数据:
var data = {
recipientUserId: selectedUser,
message: message
};
$.ajax({
url: '/api/chatmessages',
type: 'POST',
data: data,
success: function (data) {
alert(data.success);
},
error: function () {
alert("error");
}
});
这段代码的结果是,我在控制器上收到了请求,但无论如何参数总是NULL。此外,在发送数据之前,我尝试在数据上调用函数JSON.Stringify(),但它没有任何区别。请记住,出于与项目相关的原因,我极力避免在这种情况下使用模型类。
【问题讨论】:
-
您需要创建一个模型。将 FromBody 属性应用于参数以从 HTTP 请求的正文填充其属性。不要将 [FromBody] 应用于每个操作方法的多个参数。一旦请求流被输入格式化程序读取,它就不能再被读取以绑定其他 [FromBody] 参数。
标签: jquery ajax asp.net-core model-view-controller http-post