Синтаксис 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 файлов из одного места в другое.