Я пытаюсь найти лучший способ проверки данных в приложении MVC C #, и xVal, похоже, подходит лучше всего. Однако у меня возникла проблема с проверкой типа данных.
Сначала я делал UpdateModel в DTO, а затем запускал проверку в DTO. Это отлично работает для таких вещей, как обязательные поля, однако UpdateModel выдаст исключение, если вы попытаетесь, например, отобразить строку («asd») в десятичное поле. Поскольку UpdateModel нужно было запустить до того, как появились какие-либо данные для проверки, я не был уверен, как обойти это.
Мое решение состояло в том, чтобы создать DTO для каждой формы, в которую UpdateModel будет копировать, выполнить проверку на этом, а затем скопировать значения в соответствующие DTO. Все атрибуты в форме DTO будут строками, поэтому UpdateModel никогда не сработает, и я бы принудительно проверил данные через xVal. Однако, несмотря на то, что включаются правила, подобные обязательным, я не могу заставить правило DataType включиться (в данном случае, пытаясь использовать DataType.Currency).
Я также пытался заставить проверку на стороне клиента работать, но я надеялся, что существует чистый способ выполнить проверку типов данных на стороне сервера.
Что сделали другие в отношении проверки типов данных на стороне сервера?