我今天一直在将一个相当新的项目从ViewPages搬到Razor,一切似乎都很顺利.除了我试图使用
Html.Action呈现用户控件,它不会呈现任何东西.
所以我有一个在Home / Index.cshtml中引用的Shared / _Layout.cshtml文件
Index.cshtml具有以下内容:
<article> @Html.Action("LatestBlogsMainPanelWidget","Blogs") ... </article>
我把陷阱放在BlogsController中,所以我知道这是被请求的.我也知道正在返回一个模型,视图引擎正在找到LatestBlogsMainPanelWidget,甚至正在运行一些伪Razor语法代码:
@ {
var s =“你好”;
}
但是这个文件中的普通html没有进入浏览器.我也尝试了其他(以前工作)的部分,它们也不会出现(页面上的查看源确认它不存在).
我也试过替换
@ {Html.RenderAction(…); } 没有成功. @ Html.Action的任何一侧都出现HTML,所以我知道Index.cshtml正在显示.
更奇怪的是_Layout文件也有Html.Action命令,它们看起来很好.
我真的不确定还有什么要检查,或者如何确认管道正在获取HTML.任何人都可以帮忙吗?
谢谢!
解决方法
在局部视图上放置一个Layout = null,它将正常工作.