我有一个视图使用RenderAction来渲染另一个视图 - 它用于一切正常,但我做了一个相当小的重构,并将我的一些模型的属性移动到抽象基类(我的模型继承)。模型对象被重新实例化。可能由IoC?
Html.RenderAction("MyAction","MyController", Model);
如果我把一个断点在这里,我可以看到我的模型对象完全填充,但是当一步进去我的模型似乎重新实例 - 与所有的属性没有被设置,所以我得到一个很多空引用异常。
RenderAction使我的IoC容器(Castle Windsor)实例化一个MyController的新实例。它是否也出于某种原因实例化我的模型对象?
为了让事情更加复杂,当VS向我展示我的例外时,它基本上说“Property X is null”,但是当我看QuickWatch时,它的属性不为null。
我想我可能对抽象类有一个错误的理解,但如果我将基础更改为普通类,我会得到相同的结果。
我正在使用ASP.NET MVC 1.0。
编辑:
而且MyAction返回一个ActionResult - 如果有什么差别。
@Mauricio - 我不是。我使用XML进行配置 - 它非常标准,并且适用于许多其他依赖项(所有接口,没有摘要)。 – diarmo 2010-12-15 14:34:47
这看起来像是对RenderAction的误解。 – 2010-12-15 14:35:55
不,温莎不会实例化你没有注册的东西。 – 2010-12-15 14:37:18