使用Razor的Html.RenderPartial()语法

这是有效的,因为它以stringforms返回部分视图渲染的结果:

@Html.Partial("Path/to/my/partial/view") 

但我更喜欢使用RenderPartial ,它似乎我需要写:

 @{Html.RenderPartial("Path/to/my/partial/view");} 

代替:

 @Html.RenderPartial("Path/to/my/partial/view"); 

为了得到它的工作。 错误信息:

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

如果有更好的方法,而不是打开代码块@{...}只是一个方法调用?

  • RenderPartial()是写入响应stream的无效方法 。 一个void方法是,在C#中,需要一个; 因此必须用{ }括起来。

  • Partial()是一个返回MvcHtmlString的方法。 在Razor中,你可以调用一个属性或者一个返回这样一个string的方法,用@前缀来区分它和页面上的纯HTML。

Html.RenderPartial()是一个无效的方法 – 你可以检查一个方法是否是一个void方法,将鼠标放在代码中对RenderPartial的调用中,您将看到文本(扩展名)void HtmlHelper.RenderPartial …

调用代码结束时,无效方法需要分号。

在Webforms视图引擎中,你可能会将你的Html.RenderPartial()调用封装在蜜蜂中<%%>

像这样

 <% Html.RenderPartial("Path/to/my/partial/view"); %> 

当你使用Razor视图引擎的时候是等价的

 @{Html.RenderPartial("Path/to/my/partial/view");} 
 @Html.Partial("NameOfPartialView") 

如果给你这种格式,它就像一个链接到另一个页面或另一个link.partial视图主要用于从一个地方到另一个HTML文件。