У меня есть проект веб-API с конечной точкой POST.Я пытаюсь поразить эту конечную точку запросом в теле JSON и преобразовать его в параметр моей функции для этой конечной точки.Тем не менее, параметр в моей функции всегда нулевой.
Конечная точка почтовой функции:
[HttpPost]
[Route("PostMedia/")]
public void UpdateMedia([FromBody] Media value)
{
string[] file = Directory.GetFiles(this.config.Value.JSONFileDirectory, value.Id.ToString() + ".json");
if (file.Length == 1)
{
try
{
using (StreamReader reader = new StreamReader(file[0]))
{
string json = reader.ReadToEnd();
}
}
catch (Exception e)
{
throw new Exception("Could not parse file JSON for ID: " + value.Id.ToString(), e);
}
}
}
Класс модели My Media и его родительский каталог CatalogBase:
public class Media : CatalogueBase
{
MediaType type;
MediaRating rating;
string genre;
public MediaType Type { get => type; set => type = value; }
public MediaRating Rating { get => rating; set => rating = value; }
public string Genre { get => genre; set => genre = value; }
}
public abstract class CatalogueBase
{
string name;
string description;
int id;
public string Name { get => name; set => name = value; }
public string Description { get => description; set => description = value; }
public int Id { get => id; set => id = value; }
}
Запрос JSON Я использую мой API:
{
"Media" : {
"Id": 1,
"Name": "Gettysburg",
"Description": "A movie set during the American Civil War",
"Type": "Movie",
"Rating": "Excellent",
"Genre" : "Drama"
}
}
Происходит то, что я бью свою конечную точку, но параметр (Media value) всегда имеет значение null / значение по умолчанию.На самом деле он ничего не заполняет данными из тела запроса POST, который я посылаю почтальону.Есть идеи, почему мой модельный класс не заполняется фреймворком?
Так выглядит параметр модели в отладчике: