Как мне отрендерить ViewPage в строку? - PullRequest
2 голосов
/ 21 ноября 2008

Я попытался реализовать простое кэширование ViewPage с помощью ASP.NET MVC, однако не могу правильно отобразить страницу в пользовательском HtmlTextWriter, когда она имеет главную страницу.

Я попытался переопределить Render. Если я просто называю базовую реализацию, то все отображается правильно. Если я выполню рендеринг своему собственному автору и затем напишу эту строку, содержимое страницы будет зашифровано.

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 в строку?

1 Ответ

2 голосов
/ 22 ноября 2008

Известно ли вам о встроенном кэшировании, предоставляемом ASP.NET MVC? Может быть более уместно использовать то, что предусмотрено платформой.

Вот отличный обзор; Кеширование пончиков в ASP.NET MVC

Насколько я знаю, невозможно получить вывод представления в виде строки (может быть, если вы переопределите Render на главной странице?) Без разработки или использования альтернативного движка представления.

В MVC Contrib есть несколько альтернативных механизмов просмотра, если вы заинтересованы в взгляде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...