2011-03-25 70 views
99

我做了一个名为_Test.cshtml测试部分页,并把它放在同一个目录我认为,将调用它,那就是:Html.RenderPartial给我奇怪的重载错误?

<div>hi</div> 

而在调CSHTML的看法,我只是放:

@Html.RenderPartial("_Test") 

这给我的错误:

CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

我也试图与日的完整路径同样的结果。

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

回答

185

你会得到这个错误,因为Html.RenderXXX助手返回void - 他们没有任何回报,因为他们直接*写回东西来回应。你应该使用它们像这样:

@{ Html.RenderPartial("_Test"); } 

还有Html.Partial帮手,可以使你的语法的工作,但是,除非你有,因为性能(首先给出构成我不建议使用它部分视图转换为字符串,然后父视图将其放入响应*)。

*这不完全是真的,它们实际上被渲染成ViewContext.Writer,并且一旦整个页面被渲染和组合,整个事情就转到响应