缓存Razor视图,不包括_Layout

时间:2013-02-25 12:24:57

标签: asp.net-mvc caching asp.net-mvc-4

是否可以缓存视图的内容,不包括共享的_Layout我在我的控制器上为ViewResult类型的Action设置了输出缓存属性,并且它还缓存了在_Layout上定义的内容。这意味着它缓存了诸如用户名之类的东西,如果我没有登录但以前在登录时访问过该页面,则可能无效。

将动作更改为PartialViewResult会解决此问题吗?

1 个答案:

答案 0 :(得分:1)

在MCV中,缓存基于控制器而不是View,因此您无法使用视图或PartialViewResult执行此操作,但您可以使用@Html.Action部分缓存,在这种情况下,您必须为所有部分项目定义新操作,从该行动的结果中调用该视图。

最后不要忘记您在操作中调用它的部分视图中的Layout = null;代码,因为它会导致缓存错误,并且此问题也有相同的数据注释但是忘记了我认为它只是[PartialAction]不确定是诚实的。