Ste*_*wen 7 partials renderaction razor asp.net-mvc-3
我今天一直在将一个相当新的项目从ViewPages搬到Razor,一切似乎都很顺利.除了我试图使用Html.Action呈现用户控件,它不会呈现任何东西.
所以我有一个在Home/Index.cshtml中引用的Shared/_Layout.cshtml文件
Index.cshtml具有以下内容:
<article>
@Html.Action("LatestBlogsMainPanelWidget", "Blogs")
...
</article>
Run Code Online (Sandbox Code Playgroud)
我把陷阱放在BlogsController中,所以我知道这是被请求的.我也知道正在返回一个模型,视图引擎正在找到LatestBlogsMainPanelWidget,甚至正在运行一些伪Razor语法代码:@ {var s ="hello"; }
但是这个文件中的普通html没有进入浏览器.我也尝试了其他(以前工作)的部分,它们也不会出现(页面上的查看源确认它不存在).
我也试过替换@ {Html.RenderAction(...); } 没有成功.@ Html.Action的任何一侧都出现HTML,所以我知道Index.cshtml正在显示.
更诡异的_layout文件也有Html.Action命令和他们做似乎罚款.
我真的不确定还有什么要检查,或者如何确认管道正在获取HTML.任何人都可以帮忙吗?
谢谢!
大脑是个有趣的东西,尽管昨天花了几个小时研究这个问题,但我的狗半夜把我叫醒,我的潜意识才偶然发现了答案。
如果这让其他人感到困惑,我并不感到惊讶。我没有提及,因为我没有意识到我正在使用类似于 Steve Sanderson 设计的部分级缓存系统。我突然意识到这可能就是原因,因为据我所知,Razor 页面所经历的管道处理比 WebForm 页面少得多。缓存过滤器可能没有做它需要做的事情,或者没有在正确的时间做。
我已经确认注释掉相关操作上的 OutputCache 过滤器已经解决了问题。
我不知道这个问题是否适用于页面级缓存,因为我觉得它没有用。
| 归档时间: |
|
| 查看次数: |
16058 次 |
| 最近记录: |