正在重新实例化模型对象。可能是IoC?

时间:2010-12-15 14:17:47

标签: asp.net-mvc castle-windsor abstract-class ioc-container

我有一个使用RenderAction渲染另一个View的View - 它用于所有工作都很好,但我做了一个相当小的重构并将我的一些Model的属性移动到一个抽象基类(我的模型继承)。

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

如果我在这里放置断点,我可以看到我的模型对象完全填充,但是当进一步进入它时,我的模型似乎被重新实例化 - 所有属性都没有被设置,因此我得到了很多Null参考异常。

RenderAction使我的IoC容器(Castle Windsor)实例化MyController的新实例。它是否也出于某种原因实例化我的Model对象?

为了使事情更复杂,当VS向我显示我的异常时,它基本上说“属性X为空”,但是当我查看属性时,它不是null。

我以为我可能对抽象类有错误的理解,但如果我将基数改为普通类,我会得到相同的结果。

我正在使用ASP.NET MVC 1.0。

编辑:

此外,MyAction返回一个ActionResult - 如果这有任何区别。

1 个答案:

答案 0 :(得分:1)

RenderAction的对象参数用于路线值,而不是模型。您需要在MyAction方法中自己创建模型。