Мне нужно обрезать все данные HTTP POST, отправленные пользователями через веб-формы. Сделав поиск в Google, очевидно, в asp.net нет встроенной функциональности для обрезки всех данных HTTP POST.
Самое близкое, что я могу получить, это то, что описано здесь: ASP.NET MVC: лучший способ обрезать строки после ввода данных. Должен ли я создать пользовательское связующее для моделей?
К сожалению, он не работает на вложенных ViewModels (ViewModel со свойством с типом другого ViewModel).
Каков наилучший способ достичь этого? Я не хочу делать property.Trim () для каждого свойства во всей ViewModel. Спасибо.
Один из вариантов - определить свой собственный IValueProvider. Я бы начал с наследования от NameValueCollectionValueProvider, чтобы получить TrimmedNameValueCollectionValueProvider, в котором вы обрезаете результаты по мере их извлечения. Тогда вы бы определили TrimmedFormValueProvider, который передается в controllerContext.HttpContext.Request.Form как collection.
IValueProvider
NameValueCollectionValueProvider
TrimmedNameValueCollectionValueProvider
TrimmedFormValueProvider
controllerContext.HttpContext.Request.Form
collection