【发布时间】:2021-11-27 22:40:25
【问题描述】:
我目前收到 400 错误代码,但我不太明白出了什么问题。我试图在网上搜索答案,但没有一个结果有太大帮助。任何帮助/见解将不胜感激。谢谢。
无法将 JSON 值转换为 TheMoonshineCafe.Models.Event。路径:$ |行号:0 | BytePositionInLine:1。
似乎负载没有正确转换为事件类型?
从我的数据服务编辑事件函数:
editEvent(id: Number, event: EventWithID[]){
var callResult : any;
console.log(id);
console.log(event);
this.http.put(this.baseUrl + 'api/Events/' + id, event).subscribe(result => {
callResult = result;
console.log(result);
})
}
从我的 API 中放置事件:
[HttpPut("{id}")]
public async Task<ActionResult<Event>> PutEvent(int id, Event @event)
{
if (id != @event.id)
{
return BadRequest();
}
_context.Entry(@event).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!EventExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
有效载荷:
export class EventWithID {
id: number;
eventStart: Date;
eventEnd: Date;
refundCutOffDate: Date;
bandName: String;
bandImagePath: String;
bandLink: String;
maxNumberOfSeats: number;
currentNumberOfSeats: number;
ticketPrice: number;
description: String;
}
模型.事件:
public class Event
{
public int id {get; set; }
public DateTime eventStart { get; set; }
public DateTime eventEnd { get; set; }
public DateTime refundCutOffDate { get; set; }
public string bandName { get; set; }
public string bandImagePath { get; set; }
public string bandLink { get; set; }
public int maxNumberOfSeats { get; set; }
public int currentNumberOfSeats { get; set; }
public double ticketPrice { get; set; }
public string description { get; set; }
}
【问题讨论】:
-
你为什么要对你的有效载荷进行字符串化?此外,您不需要那个内容类型的标题..
-
当我删除它们时,我收到状态 400 错误。我看到其他一些人对有效负载进行字符串化并使用内容类型标头,所以我想知道是否需要包含类似的内容。我对创建、读取和删除所有工作感到有些困惑,所以 Put 也应该工作。
-
有了正确的设置,你也不应该需要......
-
好吧,我想我必须弄清楚这个 400 错误,谢谢。只是非常令人困惑,其他一切都有效。
标签: javascript c# .net angular typescript