Я хотел бы улучшить конечный результат, который возвращает ModelBinder
.
Например:
public class MyModel
{
public int Order {get;set;}
[MyUpperCaseAttribute]
public string Title {get;set;}
}
В методе API я ожидаю, что все строковые свойства в MyModel
с MyUpperCaseAttribute
равныв верхнем регистре.
Например:
[HttpPost("AddRecord")]
public async Task<ActionResult<int>> AddRecord(MyModel model)
{
model.Title should be upper case, even if send from client in lower case.
}
Моя идея состояла в том, чтобы переопределить значение по умолчанию ModelBinder
и перечислить все свойства и проверить, является ли свойство строкой, имеет ли MyUpperCaseAttribute
и правильное ли свойствозначение в верхнем регистре.Я проверяю документацию, но примеры не заполняются правильно, так как они полностью переделывают то, что возвращается.Я хотел бы просто изменить свойства результата.
Каков наилучший вариант для достижения желаемого поведения?
Важно: (отредактировано):
Было быхорошо, если атрибуты директивы могут быть сложены:
public class MyModel
{
public int Order {get;set;}
[MyUpperCaseAttribute]
[RemoveSpacesAttribute]
public string Title {get;set;}
}
Отредактировано:
Это похоже на this , но если нет, то это ASP.NETЯдро, а по ссылке это просто ASP.NET.Метод, свойства, интерфейсы ... не одно и то же.
Я должен сказать, что было бы неплохо, если бы работало правило JSON:
public class MyModel
{
public int Order {get;set;}
public string Title {get;set;}
}
должно работать, если {order: 1, title: "test"}
(обратите внимание, строчные буквы) отправляется с JavaScript.