Jør*_*ode 6 asp.net-mvc renderaction
我喜欢RenderAction
在HtmlHelper
对象上使用扩展方法来在页面中呈现侧边栏等,因为它允许我在控制器上的不同方法中保留每个这样的部分的数据访问代码.使用抽象控制器库,我可以定义一个默认的"侧边栏策略",然后可以在需要时通过覆盖具体控制器中的方法来改进.
我使用这种方法的唯一"问题"是,RenderAction
它构建的方式是始终创建控制器类的新闻实例,即使从控制器中呈现动作已经在行动中.我的一些控制器在他们的Initialize
方法中进行了一些数据查找,并且RenderAction
在视图中使用该方法会导致在同一请求中多次出现这种情况.
RenderAction
如果要调用的操作方法与"父"操作位于同一控制器类上,是否有一些替代方法将重用控制器对象?
您可以在控制器中调用它。[ActionName]。
例如,主控制器的 About 操作方法中的 this.Index() 将导致渲染索引视图,而无需再次进行控制器初始化。但这仅适用于整个页面。
renderPartial 适合您,但您必须确保“元素”(侧边栏等)在父级视图模型中拥有所需的所有数据。
例如 RenderPartial("SideBars", ViewData.Model)。如果您的 ViewModel 包含局部视图所需的所有内容,则可以将它们添加到共享视图的顶部,并且您的控制器只需要设置初始 ViewMoel。
善良,
担
归档时间: |
|
查看次数: |
1204 次 |
最近记录: |