Я попытался реализовать простое кэширование ViewPage с помощью ASP.NET MVC, однако я не могу заставить страницу правильно отображаться в настраиваемом HtmlTextWriter, когда у нее есть главная страница.
Я пробовал переопределить рендеринг. Если я просто вызываю базовую реализацию, то все отображается правильно. Если я выполняю рендеринг в собственном писателе, а затем напишу эту строку, содержимое страницы будет зашифровано.
Imports System.IO
Public Class CachedViewPage
Inherits System.Web.Mvc.ViewPage
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
'MyBase.Render(writer)
'Return
Dim stringView As String
Using sw As New StringWriter
Using w As New HtmlTextWriter(sw)
MyBase.Render(w)
End Using
stringView = sw.ToString()
End Using
writer.Write(stringView)
End Sub
End Class
Казалось бы, есть связь между MasterPage, ViewPage и HtmlTextWriter.
Как мне правильно преобразовать эту ViewPage в строку?





Знаете ли вы о встроенном кэшировании, которое обеспечивается ASP.NET MVC? Возможно, будет более подходящим использовать то, что предоставляется фреймворком.
Вот отличный обзор; Кэширование пончиков в ASP.NET MVC
Насколько мне известно, невозможно получить вывод представления в виде строки (возможно, если вы переопределите рендеринг на главной странице?) Без разработки или использования альтернативного механизма представления.
Если вам интересно взглянуть, в MVC Contrib есть несколько альтернативных механизмов просмотра.