Поскольку я обновил MVC 2 до MVC 3 RC, использование TryUpdateModel вызывает исключение NullReferenceException. Эта проблема возникает только при запуске моего метода действия как части модульного теста. Запуск его на реальном сервере работает должным образом.
Вот трассировка стека исключения:
System.NullReferenceException: Object ссылка не установлена на экземпляр объект. в System.Web.Mvc.JsonValueProviderFactory.GetValueProvider (ControllerContext controllerContext) в System.Web.Mvc.ValueProviderFactoryCollection. <> C_ DisplayClassc.b _7 (ValueProviderFactory завод) на System.Linq.Enumerable.WhereSelectEnumerableIterator
2.MoveNext () в System.Linq.Enumerable.WhereSelectEnumerableIterator
2.MoveNext () в System.Collections.Generic.List1..ctor (IEnumerable
1 коллекция) в System.Linq.Enumerable.ToList [TSource] (IEnumerable`1 источник) в System.Web.Mvc.ValueProviderFactoryCollection.GetValueProvider (ControllerContext controllerContext) в System.Web.Mvc.Controller.TryUpdateModel [TModel] (TModel модель, префикс String)
... отсюда мой собственный код ....
В случае необходимости, мой контроллер имеет следующую подпись:
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Edit(int id, FormCollection collection)
{
}
Я предполагаю, что это связано с новым способом работы DI в MVC3, но я не могу понять, что делаю не так. Возможно, есть что-то с точки зрения настройки DI, которое требуется в MVC 3, но не требуется в MVC 2?