#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 выполняется как дочерний запрос.
Вы можете взглянуть на следующее сообщение в блоге.