Я делаю простой API в ядре .net и пытаюсь реализовать сообщение, где мне нужно обработать значение enum.
Я использую «SaveProfileResource» для этого, которыйиспользуется AutoMapper в моем классе контроллеров.
Я специально хочу сделать запрос на публикацию с таким телом:
{
"FirstName": "Karl",
"LastName": "Marx",
"UserName": "MarxDidNothingWrong69",
"Gender": "Diverse"
}
, где Gender - Enum.
код выглядит примерно так:
public class SaveProfileResource
{
[Required]
[MaxLength(60)]
public string FirstName { get; set; }
[Required]
[MaxLength(60)]
public string LastName {get; set;}
[Required]
[MaxLength(60)]
public string UserName {get; set;}
[Required]
public EGender Gender {get; set;}
}
, где EGender выглядит так:
public enum EGender
{
[Description("Male")]
Male = 1,
[Description("Female")]
Female = 2,
[Description("Diverse")]
Diverse = 3,
}
и метод post в моем классе контроллера:
[HttpPost]
public async Task<IActionResult> PostAsync([FromBody] SaveProfileResource resource){
if(!ModelState.IsValid){
return BadRequest(ModelState.GetErrorMessages());
}
var profile = mapper.Map<SaveProfileResource, Profile>(resource);
var result = await profileService.SaveAsync(profile);
if(!result.Success){
return BadRequest(result.Message);
}
var profileResource = mapper.Map<Profile, ProfileResource>(result.Profile); //displaying the result to the user
return Ok(profileResource);
}
смоя текущая "сырая" реализация, я получаю
"Значение JSON не может быть преобразовано в xyzModels.EGender. Путь:"
ошибка. Мой вопрос:
что мне нужно сделать, чтобы я мог отправить запрос, содержащий описание Ender Gender.