0
我一直在使用簡單的API開發ASP.NET核心如何使用Postman使用Json發佈premitive類型?
[Route("api/[controller]/[action]")]
public class WorkunitController : Controller
{
private IRepository _repository = null;
public WorkunitController(IRepository repositoty)
{
_repository = repositoty;
}
[HttpPost]
public async Task SetTransformed([FromBody]long id)
{
if (ModelState.IsValid)
{
await _repository.SetTransformed(id);
}
}
}
}
然後在郵差我做了以下
- 設置URL
- 添加頁眉
- 「內容類型」 爲「application/json」
設定的主體
{ 「身份證」:51437665009 }
當我點擊發送,我看到的請求到達服務器,但ModelState.IsValid是false
並有例外的ModelState
- 異常{Newtonsoft.Json.JsonSerializationException:不能反序列化當前JSON對象(例如{「name」:「value」})類型爲 'System.Int64',因爲該類型需要JSON原始值(例如 string,number,boolean,null)才能正確反序列化。若要修復此錯誤,請將JSON更改爲JSON原始值(例如,字符串, 數字,布爾值,空值)或更改反序列化類型,以使其爲正常的.NET類型(例如,不是像integer這樣的基本類型,不是一個 集合類型,如數組或列表),可以從JSON對象反序列化 。 JsonObjectAttribute也可以添加到類型 中,以強制它從JSON對象反序列化。路徑的 'id',第2行, 位置17.在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader 讀卡器,類型的objectType,JsonContract合同,JsonProperty構件, JsonContainerContract containerContract,JsonProperty containerMember, 對象existingValue)在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader 讀卡器,類型的objectType,布爾 checkAdditionalContent)}的System.Exception {Newtonsoft.Json.JsonSerializationException}
我也曾嘗試發送id
作爲
{ \"id\":\"51437665009\"}