我有一个使用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 - 如果这有任何区别。
答案 0 :(得分:1)
RenderAction的对象参数用于路线值,而不是模型。您需要在MyAction方法中自己创建模型。