Перед использованием MVC 2 RC я использовал MVC 1, код, который я использовал для обновления моего объекта в моем контроллере, был таким:
TryUpdateModel(entity, null, null, new[] { "Name", "Controller" });
Я смог провести модульное тестирование этого действия контроллера, просто используя это в моем тесте:
controller.ValueProvider = myFormCollection.ToValueProvider();
После переноса моего кода в MVC 2 это больше не работает. Он продолжает давать сбой в реализации метода GetValue в FormCollection, потому что он проверяет, что запрашиваемое вами значение не является нулевым или пустым. Дело в том, что этот код работает во время выполнения, но не в моем модульном тесте. Я не использую префикс, поэтому отправляю NULL в качестве значения префикса.
Я посмотрел исходный код MVC 2 RC, и первое значение, которое ищет ValueProvider контроллера - это префикс, поэтому он ужасно терпит неудачу. Какой провайдер мне нужно назначить для controller.ValueProvider, чтобы он мог работать в моем модульном тесте?
Редактировать : Если очень кратко спросить, как я скажу TryUpdateModel НЕ использовать префикс в моем модульном тесте, чтобы он не вызывал исключения?
Спасибо!