Модельный объект восстанавливается.Возможно, по IoC? - PullRequest
0 голосов
/ 15 декабря 2010

У меня есть представление, которое использует RenderAction для рендеринга другого представления - раньше все работало нормально, но я провел довольно небольшой рефакторинг и переместил некоторые свойства моей модели в абстрактный базовый класс (который наследует моя модель).

Html.RenderAction("MyAction","MyController", Model);

Если я поставлю здесь точку останова, я смогу увидеть, что мой объект модели полностью заполнен, однако, когда я вхожу в него дальше, кажется, что моя Модель повторно создается - все свойства не установлены, и поэтому я получаюмного исключений Null Reference.

RenderAction заставляет мой контейнер IoC (Castle Windsor) создать новый экземпляр MyController.Является ли это экземпляром моего объекта Model по какой-то причине?

Чтобы еще больше усложнить ситуацию, когда VS показывает мне мое исключение, он по существу говорит: «Свойство X равно нулю», но когда я смотрю на QuickWatch, свойство не равно нулю.

Мне показалось, что я неправильно понял абстрактные классы, но если я изменю базу на нормальный класс, я получу тот же результат.

Я использую ASP.NET MVC 1.0.

Редактировать:

Также MyAction возвращает ActionResult - если это имеет какое-либо значение.

1 Ответ

1 голос
/ 15 декабря 2010

Параметр объекта RenderAction предназначен для значений маршрута, а не для модели.Вам нужно будет создать модель самостоятельно в методе MyAction.

...