Синтаксис Html.RenderPartial() с помощью 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

Если лучше всего открыть блок кода @{...} только для одного вызова метода?

Ответ 1

  • RenderPartial() - это метод void, который записывает в поток ответов. Метод void в С# требует a ; и, следовательно, должен быть заключен в { }.

  • Partial() - это метод, который возвращает MvcHtmlString. В Razor вы можете вызвать свойство или метод, который возвращает такую ​​строку с помощью только префикса @, чтобы отличить его от обычного HTML, который у вас есть на странице.

Ответ 2

Html.RenderPartial() - это метод void - вы можете проверить, является ли метод методом void, наведя указатель мыши на вызов RenderPartial в вашем коде, и вы увидите текст (расширение) void HtmlHelper.RenderPartial...

Для методов Void требуется точка с запятой в конце вызывающего кода.

В движке просмотра Webforms вы заключили бы свой вызов Html.RenderPartial() в пределах пчелиных укусов <%% >

так

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

когда вы используете механизм просмотра Razor, эквивалент

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

Ответ 3

@Html.Partial("NameOfPartialView")

Ответ 4

Если вам дан этот формат, он принимает ссылку на другую страницу или другую ссылку. Частичное представление, которое обычно используется для извлечения html файлов из одного места в другое.