我有一個視圖使用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