Синтаксис Html.RenderPartial () с Razor - PullRequest
89 голосов
/ 08 августа 2011

Это работает, потому что возвращает результат частичного рендеринга представления в виде строки:

@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 ]

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

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

45 голосов
/ 08 августа 2011

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

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

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

примерно так

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

, когда вы используете Razor View Engine, эквивалентный

@{Html.RenderPartial("Path/to/my/partial/view");}
9 голосов
/ 15 июня 2012
@Html.Partial("NameOfPartialView")
0 голосов
/ 17 января 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...