вызов частичного представления в asp.net MVC3

#asp.net-mvc #asp.net-mvc-3

#asp.net-mvc #asp.net-mvc-3

Вопрос:

В чем разница между Html.Partial и Html.action в контексте использования частичного представления в asp.net MVC3 ?

Ответ №1:

HTML.Действие вызовет действие контроллера, поэтому оно снова пройдет через весь конвейер MVC (внутри сервера), чтобы найти контроллер, который вернет ViewResult (хотя теоретически вы также можете вернуть JsonResult или что-то еще).

Html.Partial вернет только частичную страницу (как в файле CSHTML) и не будет проходить через весь конвейер. Он будет просто выполнять поиск с использованием механизма просмотра.

Некоторые преимущества Action заключаются в наличии аутентификации, кэширования и других вещей, которые происходят в конвейере MVC, в то время как Partial выполняется быстрее (хотя на частичной странице может быть больше ответственности, если вам нужно передать ViewModel и т.д.).

Это хороший пост (немного старый) о плюсах / минусах RenderAction vs RenderPartial

Ответ №2:

Html.Partial включает непосредственно представление в том месте, где вы вызвали помощника. Это похоже на включение файла.

Html.Action сначала вызывает действие контроллера, которое может отображать представление, и включается результат этого действия. И поскольку вызывается действие контроллера, необходимо создать экземпляр контроллера, поэтому весь конвейер MVC выполняется как дочерний запрос.

Вы можете взглянуть на следующее сообщение в блоге.