Mvc基本视图模型在布局中呈现数据

时间:2012-10-14 08:33:56

标签: asp.net-mvc-3 c#-4.0

我创建了一个基本视图模型,我的所有视图模型都继承自。那部分很容易。

所有视图都绑定到一个视图模型(所有视图都从基本视图模型继承)

在OnActionExecuted方法中,我根据某些条件在baseviewmodel中的属性上插入一个true / false值。

从事物的角度来看。我有一个单一的布局页面,我希望能够读取属性的值并根据值呈现不同的局部视图。

这可能吗?我不想将代码添加到每个视图中,但我认为我不应该将布局绑定到我的baseviewmodel。

如果我可以远离将值插入valuebag,那将是非常好的,因为我需要能够通过强类型名称在应用程序的任何位置访问这些值。

2 个答案:

答案 0 :(得分:0)

我不确定我是否完全按照用例进行操作,但是您没有尝试渲染局部视图,是否考虑过嵌套布局页面。

我认为您应该能够覆盖onactionexecuted中的布局,因此您可以根据bool设置布局,并且该布局将仅呈现正确的选项。

在这里查看示例:

Nested layout pages with Razor

HTH

的Si

答案 1 :(得分:0)

您想要的可能是不可能的,因为当您从控制器调用视图时,首先执行该视图中的代码然后执行布局代码
要实现你正在做的事情你可以做两件事


1.在controller本身内部制作逻辑,然后渲染正确的view
2.拨打controller的布局,在partial viewmodel

的某些属性中为其viewbag命名