使用Razor的Html.RenderPartial()语法

art*_*olk 92 asp.net-mvc razor asp.net-mvc-3

这是有效的,因为它返回字符串中部分视图呈现的结果:

@Html.Partial("Path/to/my/partial/view")
Run Code Online (Sandbox Code Playgroud)

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

@{Html.RenderPartial("Path/to/my/partial/view");}
Run Code Online (Sandbox Code Playgroud)

代替:

@Html.RenderPartial("Path/to/my/partial/view");
Run Code Online (Sandbox Code Playgroud)

让它工作.错误信息:

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

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

Ofe*_*lig 140

  • RenderPartial()是一个写入响应流的void方法.C#中的void方法需要a ;,因此必须包含在内{ }.

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

  • 我使用它因为它应该更有效(因为它不会返回大字符串). (5认同)

Nic*_*ray 45

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

Void方法在调用代码的末尾需要分号.

在Webforms视图引擎中,您可以在蜜蜂叮咬<%%>中包含您的Html.RenderPartial()调用

像这样

<% Html.RenderPartial("Path/to/my/partial/view"); %>
Run Code Online (Sandbox Code Playgroud)

当你使用Razor视图引擎时,相当于

@{Html.RenderPartial("Path/to/my/partial/view");}
Run Code Online (Sandbox Code Playgroud)

  • "蜜蜂蜇" - 这是第一个(对我而言?) (5认同)

Rou*_*ouR 9

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