В следующем фрагменте кода, объект ExpenseRecord всегда нуль, когда я делаю запрос POST с телом: {"id":null,"name":"Test","reason":"Flight","date":"01.10.2016","amount":10,"text":"Test"}
Модель Binding не работает, если GUID является нулевым
[HttpPost]
public IActionResult Post([FromBody]ExpenseRecord record)
{
try
{
this.repository.Create(record);
return this.Created($"api/expenses/{record.Id}", null);
}
catch (ArgumentNullException)
{
return this.BadRequest();
}
catch (InvalidOperationException)
{
return new StatusCodeResult((int)HttpStatusCode.Conflict);
}
}
ExpenseRecord выглядит как:
public class ExpenseRecord : IEquatable<ExpenseRecord>
{
public Guid Id { get; set; }
public string Date { get; set; }
public string Name { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public ExpenseReason Reason { get; set; }
public decimal Amount { get; set; }
public string Text { get; set; }
...
}
Если идентификатор установлен на соответствующий fomatted GUID, он работает. Однако при публикации новой записи я не могу (или, скорее, не хочу) предоставить идентификатор?
Как вы сделали запрос POST? –
Advanced Rest Клиент: POST/API/расходы HTTP/1.1 HOST: локальный: 57938 тип содержимого: приложения/JSON содержание длина: 89 { "ID": нулевой, "имя": "Тест" , «reason»: «Flight», «date»: «01.10.2016», «amount»: 10, «text»: «Test»} – Stefan
'Guid' - это' struct', поэтому не может допускать нулевые значения. –