Вы делаете второй, лишний поиск в словаре:
foreach (KeyValuePair<string, ValueProviderResult> pair in formValues)
{
ModelState.SetModelValue(pair.Key, pair.Value);
}
Очень странно!
in 3.5 ToValueProvider()
возвращает IDictionary<string, ValueProviderResult>
и
, но в 4.0 - возвращается IValueProvider