我有一个mvc视图,它使用层次结构作为模型。我将模型的属性传递给子操作。
@{ Html.RenderAction("SomeAction", "SomeController", Model.Child[0]); }
一切正常,但我注意到默认的mvc binder使用Model.Child[0]
复制Activator
的值,并通过构建html页面的过程复制一些反射内容。我只是在“SomeAction”方法中看到一个不同的对象。我不希望这种情况发生并保留原始物体。
我尝试编写自定义绑定器,检查它是否为子操作并在ControllerContext/ModelBindingContext
内找到原始对象。但没有运气,我找不到原件。有人有类似的问题,任何帮助将不胜感激?
UPD。
我发现当我调用RenderAction
时,模型会立即在RouteValueDictionary
中进行分割,因此在调用底层控制器操作之前必须重新创建模型并不奇怪。但我不相信没有办法解决它,因为在某些情况下它可能会导致性能问题。