【发布时间】:2019-09-08 17:54:45
【问题描述】:
我尝试使用 jQuery 从客户端向 ASP Web API 方法传递多个参数,但该方法无法接受。我尝试了一些解决方案,但都是一样的。
网络 API:
[HttpPost]
[ResponseType(typeof(Message))]
[Route("api/Messages/send-message")]
public async Task<IHttpActionResult> SendMessage(Email email, Message message){}
jQuery:
$.ajax({
url: '/api/Messages/send-message',
method: 'POST',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({
email: EmailsArray,
title: $('#txtTitle').val(),
body: $('#txtContent').val(),
}),
success: function (response) {
console.log(response);
});
错误信息:
"message":"An error has occurred.","exceptionMessage":"Can't bind multiple parameters ('email' and 'message') to the request's content.","exceptionType":"System.InvalidOperationException"
【问题讨论】:
-
创建一个具有
Email和Message类型属性的模型类,然后发送该对象。 -
另外,在您的 JS 中,您当前正在发送 三个 参数(电子邮件、标题和正文)而不是两个。在该数据对象中看不到“消息”。但是是的,只需将它们全部包装在 DTO 中......请参阅下面的答案
-
原生 WebAPI 不支持绑定多个 POST 参数
标签: c# jquery asp.net-web-api