【发布时间】:2022-07-06 15:21:13
【问题描述】:
我有一个带有一些 JavaScript 将表单数据发送到 API 的 Razor Pages 页面。 API 尝试更新数据库,如果存在并发冲突,则返回 409。JavaScript 然后检查响应状态是否为 409,并相应地通过 Conflict detected 等消息提醒用户。
问:如何将上下文与响应一起发回,以便用户可以看到哪些数据触发了冲突?
JavaScript:
var response = await fetch("api/dsr/updateStatus", {
method: "POST",
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
if (response.status == 409) {
alert("Conflict detected.");
}
控制器代码
IEnumerable<DSR> changedDsrs = // DetectIfConflict();
if (changedDsrs.Any())
{
return Conflict();
}
我尝试将最后一行更改为return Conflict(new { statusText = changedDsrs.First().ReleaseId.ToString()}); 无济于事。
发布的代码工作正常:如果确实检测到冲突,则返回 409 并提醒用户 - 我只想知道如何向警报文本添加上下文以显示来自 changedDsrs 的信息
【问题讨论】:
-
看看这个 - 可能会回答你的问题:stackoverflow.com/a/43335622/660223
标签: c# asp.net-core http-status-code-409