У меня есть представление, которое использует RenderAction для рендеринга другого представления - раньше все работало нормально, но я провел достаточно небольшой рефакторинг и переместил некоторые свойства моей модели в абстрактный базовый класс (который моя модель наследует).
Html.RenderAction("MyAction","MyController", Model);
Если я поставлю здесь точку останова, я увижу, что мой объект модели полностью заполнен, однако, когда я сделаю шаг дальше, моя модель, похоже, будет повторно создана - со всеми не заданными свойствами, и поэтому я получаю много исключений с нулевой ссылкой.
RenderAction заставляет мой контейнер IoC (Castle Windsor) создавать новый экземпляр MyController. По какой-то причине он также создает экземпляр моего объекта Model?
Чтобы еще больше усложнить ситуацию, когда VS показывает мне мое исключение, он, по сути, говорит: «Свойство X равно нулю», но когда я смотрю на QuickWatch, свойство не равно нулю.
Я думал, что, возможно, неправильно понимаю абстрактные классы, но если я изменю базу на нормальный класс, я получу тот же результат.
Я использую ASP.NET MVC 1.0.
Редактировать:
Также MyAction возвращает ActionResult - если это имеет значение.