Html.Partial или Html.RenderPartial с MVC3? - PullRequest
       1

Html.Partial или Html.RenderPartial с MVC3?

10 голосов
/ 10 сентября 2011

Я полностью сбит с толку, даже увидев следующее объяснение.

<div>
  @Html.Partial("_FeaturedProduct")
</div>

Частичные представления также могут отображаться внутри страницы макета (или при использовании MVC 2/3 с / ASPX, мастер-страницей)как обычные представления.

В некоторых случаях вам может потребоваться отойти в сторону и записать напрямую в поток HTTP-ответов, а не частичное представление, отображающее результаты (partials / views используют MvcHtmlString / StringWriter).Для этого используйте помощник Html.RenderPartial.

<div>
  @Html.RenderPartial("_FeaturedProduct")
</div>

Может кто-нибудь сказать мне, что это значит?В каких случаях мне может потребоваться запись прямо в HTTP-ответ и т. Д. Что если мое частичное представление содержит только одну строку, например, такую:

<h1>Hello</h1>

Что мне следует использовать и почему?Что произойдет, если я воспользуюсь другим?

Следующее меня смутило еще больше: «Используйте Html.RenderPartial для потоковой передачи изображений или других элементов, которые ориентированы на мультимедиа или где очень важно быстрое время загрузки».

1 Ответ

6 голосов
/ 10 сентября 2011

См. Ответ ниже.

Единственное отличие состоит в том, что Partial возвращает MvcHtmlString и должен вызываться внутри <% =%>, тогда как RenderPartial возвращает прямо на вид.

Если вы посмотрите на исходный код, вы увидите, что они оба вызывают тот же внутренний метод, передающий StringWriter для его рендеринга.

Вы бы вызвали Partial, если хотите просмотреть, сохранить или манипулировать сгенерированный HTML вместо записи на страницу.

В чем разница (если есть) между Html.Partial (вид, модель) и Html.RenderPartial (вид, модель) в MVC2?

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