Наше приложение использует атрибуты проверки для использования проверки модели ASP.NET, однако это дает имена, разделенные точками, для ошибок проверки.При прохождении через CamelCasePropertyNamesContractResolver
применяется только верблюд перед первой точкой, в то время как мы хотели бы, чтобы верблюд применялся к каждому разделу имени.
Например, в настоящее время мы получаем текущий ответ json:
{
"body.State": [
"The state field is required."
],
"body.LatestVersion": [
"The latestVersion field is required."
]
}
Но желание выйти:
{
"body.state": [
"The state field is required."
],
"body.latestVersion": [
"The latestVersion field is required."
]
}
В нашей настройке MVC есть строка, похожая на
services.AddJsonOptions(options => options.ContractResolver = new CamelCasePropertyNamesContractResolver());
Мы будем признательны за любое решение, будьчто изменения в том, как мы настроили преобразователь, или как мы могли бы изменить проверку.
Редактировать: Просто для справки структура модели для запроса, который генерирует этот запрос,следующим образом:
public sealed class RequestModel
{
[FromRoute, DisplayName("entity"), Required, MaximumLength(255)]
public string Entity { get; set; }
[FromBody, DisplayName("body"), Required]
public BodyModel Body { get; set; }
}
public sealed class BodyModel
{
[DisplayName("latestVersion"), Required, MaximumLength(255)]
public string LatestVersion { get; set; }
[DisplayName("state"), Required]
public ModelState State { get; set; }
}
, а тело запроса отправляется:
{
}