【发布时间】:2019-05-30 20:02:19
【问题描述】:
我正在尝试使用 API 在数据库中插入多个用户。现在,假设要插入三个用户,并假设一个用户没有被插入,但另外两个被成功插入。所以,我需要显示响应,显示用户第一个成功插入,用户第二个有错误。这就是为什么我使用了 httpResponseMessage 列表,并且在每个 httpresponsemessageobject 中,我将添加完整的用户 json,表明这是用户,失败或成功状态
所以,根据我的实现
我正在使用 foreach 循环在 db 中插入多个用户并返回这样的响应,但我从 api 的响应没有在内容中显示“用户”对象:
public async Task<List<HttpResponseMessage>> InserUsers(JArray obj)
{
List<myDTO> users = obj.ToObject<List<myDTO>>();
List<HttpResponseMessage> list = new List<HttpResponseMessage>();
foreach (var user in users)
{
var response = Insert(user);
list.Add(new HttpResponseMessage
{
Content = new StringContent(JsonConvert.SerializeObject(user), System.Text.Encoding.UTF8, "application/json"),
ReasonPhrase = response.ReasonPhrase,
StatusCode = response.StatusCode
});
}
return returnResposeList;
}
public HttpResponseMessage Insert(User user)
{
// do insert and if there is error
return new HttpResponseMessage()
{
StatusCode = HttpStatusCode.Error,
ReasonPhrase = $"Error"
};
else
{
return new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK,
ReasonPhrase = $"Successfully inserted"
};
}
}
感谢和问候
【问题讨论】:
-
你为什么有
List<HttpResponseMessage>?它是如何使用的?您应该多花一点时间来改进您的问题,以便让我们清楚地了解问题所在。 -
以下行将 json 添加到我的内容中,但 .net 核心 APi 现在无法发送响应。我不知道为什么? Content = new ObjectContent(JsonConvert.SerializeObject(user).GetType(), JsonConvert.SerializeObject(user),new JsonMediaTypeFormatter()),
-
@Svek,我刚刚编辑了问题。有意义吗?
-
恐怕不行。我还是不明白你为什么有
List<HttpResponseMessage>。
标签: api asp.net-web-api .net-core asp.net-web-api2 asp.net-core-webapi