Я пытаюсь лучше понять "за кадром" на компонентах представления. Я знаю, что стандартный подход - вызывать ViewComponent
с помощью
@await Component.InvokeAsync("MyViewComponent", itsModel)
или вспомогательный тег просмотра компонента в файле .cshtml.
Однако можно использовать компоновки представлений другими способами. Так, например, вы можете вернуть представление непосредственно из контроллера, используя return ViewComponent("MyViewComponent", itsModel);
из метода действия.
Похоже, что должна быть возможность легко визуализировать компонент вида в строку. Я вижу, что в ViewComponetResult
, возвращаемом ViewComponent("MyViewComponent", itsModel);
, есть метод ExecuteResult
.
В контроллере это можно назвать так:
ViewComponent("MyViewComponent", itsModel).ExecuteResult(this.ControllerContext);
На первый взгляд, я ожидаю, что такой метод вернет строку html. Но это возвращает пустоту. Зачем? Что делает ViewComponentResult.ExecuteResult
, если не возвращает результат? И как я могу сделать ViewComponentResult
в строку HTML?