Razor @ {...} vs @调用RenderPartial

Sac*_*nth 6 c# razor asp.net-mvc-3

我试图理解为什么当我在我看来这样做时,我得到一个错误

@Html.RenderPartial("MyPartial", Model);
Run Code Online (Sandbox Code Playgroud)

编译错误说明:在编译服务此请求所需的资源期间发生错误.请查看以下特定错误详细信息并相应地修改源代码.

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

但是当我这样做时,部分渲染很好

@{
   Html.RenderPartial("MyPartial", Model);
}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么第一个例子失败了?

dan*_*elQ 7

事实上,这种格式......

@Html.RenderPartial("MyPartial", Model)
Run Code Online (Sandbox Code Playgroud)

...用于不返回的函数void,因为RenderPartial确实返回void,您会收到该错误.

相反,在这个块中,它只是代码执行(将在内部进行写调用):

    @{    
Html.RenderPartial("MyPartial", Model); 
}
Run Code Online (Sandbox Code Playgroud)

你可以另外打电话

@Html.Partial("MyPartial") 
Run Code Online (Sandbox Code Playgroud)

...确实返回了字符串.