【发布时间】:2011-04-19 17:47:55
【问题描述】:
我正在使用带有剃须刀的 asp.net mvc 3.0。
我想知道是否可以为我的母版页制作一个视图模型。我的母版页中有一些动态数据,因此我可能必须为所有控制器创建一个“基类”,但我宁愿拥有强类型数据,然后查看数据/查看包。
这样可以吗?
【问题讨论】:
我正在使用带有剃须刀的 asp.net mvc 3.0。
我想知道是否可以为我的母版页制作一个视图模型。我的母版页中有一些动态数据,因此我可能必须为所有控制器创建一个“基类”,但我宁愿拥有强类型数据,然后查看数据/查看包。
这样可以吗?
【问题讨论】:
您可以让您的所有视图模型都继承自一个基础视图模型,该基础视图模型将包括您的所有公共字段。
或者,您可以使用Custom Action Filter 将一些对象放入您的母版页始终希望存在的视图数据中。此操作过滤器还可用于填充视图模型基类中的公共字段。
【讨论】:
我建议使用 RenderAction 而不是拥有一个基础视图模型,您的所有视图模型都将从该基础视图模型中继承。我想您想在母版页中使用的视图模型很可能会包含导航数据(菜单或左栏等)。如果是这种情况,RenderAction 会彻底分离关注点,您可以在首次加载此特定操作后缓存该特定操作中使用的数据,然后您的进一步请求将从缓存数据中获得。
【讨论】: