This works, because it returns the result of partial view rendering in a string:
@Html.Partial("Path/to/my/partial/view")
But I prefer to use RenderPartial
and it seems I need to write:
@{Html.RenderPartial("Path/to/my/partial/view");}
instead of:
@Html.RenderPartial("Path/to/my/partial/view");
To get it to work. Error message:
Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
If there any better way instead of opening code block @{...}
just for one method call?
RenderPartial()
is a void method that writes to the response stream. A void method, in C#, needs a ;
and hence must be enclosed by { }
.
Partial()
is a method that returns an MvcHtmlString. In Razor, You can call a property or a method that returns such a string with just a @
prefix to distinguish it from plain HTML you have on the page.