首先,我想說我是 asp.net 的新手,我現在正在嘗試至少學習基本的東西,所以不要對我苛刻 :) 我的控制器中有一個 post 方法,它必須收到一個json 從 post 請求正文,然后將資訊添加到資料庫中。所以這里是方法:
[HttpPost]
public ActionResult<DeviceData> InsertData(DeviceData deviceData)
{
var device = deviceContext.Devices.Find(deviceData.Id);
if (device == null)
{
return BadRequest(Messages.DeviceNotExist);
}
deviceContext.DeviceData.Add(new DeviceData
{
Timestamp = DateTime.Now,
Latitude = deviceData.Latitude,
Longitude = deviceData.Longitude,
Altitude = deviceData.Altitude,
Speed = deviceData.Speed,
DeviceId = deviceData.DeviceId
});
deviceContext.SaveChanges();
return Ok(deviceContext.DeviceData.OrderBy(x=>x.Id).Last());
}
我最好的猜測是我的引數不正確,因為我試圖傳遞 json 并且方法中的引數是 DeviceData 型別。所以我的問題是我應該更改和添加什么來獲取請求的 json 正文并使用資料執行插入到資料庫中,然后回傳回應 - json 物件?如果重要的話,我正在使用 Postman 進行請求。
uj5u.com熱心網友回復:
當您檢查設備是否存在時,您使用的是錯誤的 ID,您必須改用 DeviceId
var exist = deviceContext.Devices.Any(i=> i.Id==deviceData.DeviceId);
if (!exist) return BadRequest(Messages.DeviceNotExist);
恕我直言,替換
deviceContext.DeviceData.Add(new DeviceData
{
Timestamp = DateTime.Now,
Latitude = deviceData.Latitude,
Longitude = deviceData.Longitude,
Altitude = deviceData.Altitude,
Speed = deviceData.Speed,
DeviceId = deviceData.DeviceId
});
和
deviceData.Timestamp = DateTime.Now;
deviceContext.DeviceData.Add(deviceData);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/335500.html
