#http #.net-core #enums #json.net #query-parameters
Вопрос:
Я попытался передать значение перечисления в качестве параметра запроса для запроса Post, но оно не принимает значение? Когда я пытаюсь отправить запрос от Swagger, он даже не отправляет запрос.
ПРИМЕЧАНИЕ: Я использую Newtonsof.Библиотека Json и я также добавили конфигурацию при запуске
services.AddMvc(opt =>
{
...
})
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
options.SerializerSettings.Converters.Add(new StringEnumConverter());
});
public enum CardBrand
{
[Description("MASTER")]
MASTER,
[Description("PAYPAL")]
PAYPAL,
[Description("VISA")]
VISA
}
[HttpPost("{orderId}")]
public async Task<ResponseModel<bool>> RandomTask(string orderId, CardBrand cardBrand)
{
return await _orderService.UpdatePayment(orderId, cardBrand);
}
Комментарии:
1. Просто дружеское замечание-если вы решили свой собственный вопрос, предпочтительно, чтобы вы добавили свое решение в качестве ответа, а не редактировали сам вопрос, чтобы сказать «решено». Вы также можете отметить свой собственный ответ как принятый (после короткого периода ожидания), и система поймет, что вы больше не ищете решение.
2. Я этого не знал, спасибо за информацию
Ответ №1:
Swagger имеет функцию DescribeAllEnumsAsStrings, которая доступна в версии 5.0.0. Я решил свою проблему с помощью этой функции. Я надеюсь, что это сработает и для других