對于我使用 C# 和 asp.net CORE Web-API 的第一個專案,我目前正在努力解決一個特定問題。我無法發布模型系結到另一個的專案。
所以我有兩個模型,Profession 和 ProfessionField,分別包含以下代碼。
職業:
{
public class Profession
{
public int ProfessionId { get; set; }
public string? ProfessionName { get; set; }
}
}
專業領域:
{
public class ProfessionField
{
public int ProfessionFieldId { get; set; }
public string? ProfessionFieldName { get; set; }
public Profession? Profession { get; set; }
}
}
我想發布一個 ProfessionField 專案,以便在 JSON 中得到類似的結果:
{
"professionfieldid":"1",
"professionfieldname":"Sports",
"profession": [
{
"professionid":"1",
"professionname:"journalist"
}
]
}
作為一個請求,我有這個:
[HttpPost]
public async Task<ActionResult<ProfessionField>> PostProfessionField(ProfessionField professionField)
{
_context.ProfessionField.Add(professionField);
await _context.SaveChangesAsync();
return CreatedAtAction("GetProfessionField", new { id = professionField.ProfessionFieldId }, professionField);
}
我嘗試使用 httprepl 以不同的方式執行這些發布請求,但每次“職業”的值都是空的。
我嘗試過的請求示例:
post -h Content-Type=application/json -c "{"professionfieldname":"Sport", "profession":"1"}"
post -h Content-Type=application/json -c "{"professionfieldname":"Sport", "profession":"1"}"
post -h Content-Type=application/json -c "{"professionfieldname":"Sport","profession": [{"professionid":"1","professionname":"journalist"}]}"
對于最后一個,我收到錯誤 400,錯誤請求,并帶有以下注釋:“無法將 JSON 值轉換為 name_of_my_project.Models.Profession”。
你知道什么是正確的請求語法或者我可以如何改進兩個模型的系結來解決這個問題嗎?
uj5u.com熱心網友回復:
我希望正確的 JSON 結構應該是:
{
"professionfieldid":"1",
"professionfieldname":"Sports",
"profession": {
"professionid":"1",
"professionname:"journalist"
}
}
您的前兩次嘗試是錯誤的,因為它們為屬性提供了一個簡單的字串"1",profession而模型顯然需要一個復雜的物件。當模型只需要一個物件時,最后一次嘗試提供物件的陣列(即串列)(盡管在這種情況下串列中只有一個東西)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/510075.html
