Первое решение, которое приходит на ум, - это создать действие в контроллере, который отправляет Http-запрос на удаленную веб-страницу и анализирует HTML-код, который вы хотите вернуть на свою страницу, а затем настраивает кэширование вывода для вашего действия.
Edit:
Какой контроллер будет использовать для действия, будет зависеть от структуры вашего веб-сайта и от того, будет ли частичное представление отображаться во всех представлениях или только в определенном представлении. Если частичное видимо во всех видах, я бы либо поместил его в контроллер Home, либо создал бы «общий» контроллер (если бы я ожидал, что в таком контроллере будет больше действий).
Если вы хотите манипулировать результатом, я бы сделал модель и частичное представление списка. Если вы хотите взять часть возвращенного html и вывести ее как есть, я бы использовал тот же метод, что и в ответе Мэтью Эбботта:
return Content(yourHtmlString);
Конец будет выглядеть примерно так:
[OutputCache(Duration = 3600)]
public ActionResult RemoteList()
{
var client = new WebClient();
var html = Encoding.UTF8.GetString(client.DownloadData("http://www.somedomain.com"));
// Do your manipulation here...
return Content(html);
}
(Часть вышеприведенного кода была заимствована из поста Мэтью Эбботтом.)