我制作了一个名为 _Test.cshtml 的测试部分页面,并将其放在与我将调用它的视图相同的目录中,这里是:
<div>hi</div>
在调用cshtml视图中,我只是简单地说:
@Html.RenderPartial("_Test")
这给了我错误:
CS1502:最佳重载方法 匹配 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' 有一些无效的论点
我也尝试了相同结果的完整路径。
我很困惑为什么这样做,我想我错过了一些简单的东西?
答案 0 :(得分:189)
您收到此错误是因为Html.RenderXXX
帮助程序返回void - 它们没有任何内容可以返回,因为它们直接将内容写入响应*。你应该像这样使用它们:
@{ Html.RenderPartial("_Test"); }
还有Html.Partial助手,它可以使用你的语法,但我不建议使用它,除非你必须,因为性能(它首先将给定的局部视图组成字符串,然后父视图放置它回应*)。
*这并不完全正确,它们实际上被渲染到ViewContext.Writer中,一旦整个页面被渲染和组合,整个事情就转到了响应