使用Razor的Html.RenderPartial()语法

时间:2011-08-08 10:29:54

标签: asp.net-mvc asp.net-mvc-3 razor

这样可行,因为它以字符串形式返回部分视图渲染的结果:

@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

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

4 个答案:

答案 0 :(得分:138)

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

  • Partial()是一种返回MvcHtmlString的方法。在Razor中,您可以调用一个属性或方法来返回仅带有@前缀的字符串,以区别于您在页面上的纯HTML。

答案 1 :(得分:45)

Html.RenderPartial()是一个void方法 - 您可以通过将鼠标放在代码中对RenderPartial的调用上来检查方法是否为void方法,您将看到文本(extension)void HtmlHelper。的RenderPartial ...

Void方法在调用代码的末尾需要一个分号。

在Webforms视图引擎中,您可以在蜜蜂蜇伤< %%>

中包含您的Html.RenderPartial()调用

喜欢这样

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

当您使用Razor视图引擎时,等效项

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

答案 2 :(得分:9)

@Html.Partial("NameOfPartialView")

答案 3 :(得分:0)

如果您获得此格式,则需要链接到另一个页面或其他链接。部分视图主要用于将html文件从一个地方加密到另一个地方。