У меня есть объект, который ранее переключался с сервера на клиент и обратно (то есть редактирование и просмотр форм работали нормально). Однако я добавил к этому объекту сложный тип и создал собственный ModelBinder для его обработки. Сложный тип может быть представлен как одна строка, но хранится в объекте как десятичное число (например, «0 футов 3 дюйма» может быть сохранено как 0,25).
Моя проблема, однако, в том, что проверка не удалась. Если пользователь вводит «asdf», проверка не проходит. Но то, что хранится в десятичном виде, это просто 0. Поэтому, когда представление отображается и отправляется пользователю, они просто видят «0» и сообщение об ошибке, а не «asdf». У меня нет этой проблемы с ModelBinder по умолчанию (другие поля обходят недопустимую строку просто отлично), поэтому я должен что-то упустить в моем пользовательском ModelBinder ... но что это?
Я пытался позвонить
bindingContext.ModelState.SetModelValue(bindingContext.ModelName, New ValueProviderResult(null, attemptedValue, Globalization.CultureInfo.CurrentCulture))
Но, похоже, это ни на что не влияет.