Html.RenderPartial给我奇怪的重载错误?

nas*_*ski 102 asp.net-mvc renderpartial razor asp.net-mvc-3

我创建了一个名为_Test.cshtml的测试部分页面,并将其放在与我将调用它的视图相同的目录中,这里是:

<div>hi</div>
Run Code Online (Sandbox Code Playgroud)

在调用cshtml视图中,我只是简单地说:

@Html.RenderPartial("_Test")
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

CS1502:'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'的最佳重载方法匹配有一些无效的参数

我也尝试了相同结果的完整路径.

我很困惑为什么这样做是这样的,我想我错过了一些简单的东西?

Luk*_*tný 189

你得到这个错误,因为Html.RenderXXX助手返回无效 - 他们没有任何东西可以返回,因为他们直接写东西*给响应.你应该像这样使用它们:

@{ Html.RenderPartial("_Test"); }
Run Code Online (Sandbox Code Playgroud)

还有Html.Partial助手,它可以使用你的语法,但我不建议使用它,除非你必须,因为性能(它首先将给定的局部视图组成字符串,然后父视图将其置于响应*).

*这并不完全正确,它们实际上被渲染到ViewContext.Writer中,一旦整个页面被渲染和组合,整个事情就转向响应