Невозможно применить индексирование с помощью [] к выражению типа 'System.Web.Mvc.IValueProvider' - PullRequest
2 голосов
/ 31 августа 2010

Я конвертирую приложение ASP.NET MVC в ASP.NET MVC 2 и получаю следующую ошибку:

Невозможно применить индексирование с помощью [] к выражению типа 'System.Web.Mvc.IValueProvider'

Вот код:

public static void AddRuleViolation(this ModelStateDictionary modelState,
                                    RuleViolation error, 
                                    FormCollection collection)
{
    modelState.AddModelError(error.PropertyName, error.ErrorMessage);
    modelState.SetModelValue(error.PropertyName, 
                             collection.ToValueProvider()[error.PropertyName]);
}

Как это можно исправить?

1 Ответ

6 голосов
/ 10 октября 2010

Реализация изменена между ASP.NET MVC 1 и 2 для IValueProvider.

Попробуйте использовать метод GetValue() вместо ссылки на него по индексу.

collection.ToValueProvider().GetValue(error.PropertyName)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...