Как сделать кэш с частичным представлением на Site.Master? - PullRequest
2 голосов
/ 10 июня 2009

Я пытаюсь использовать кеширование пончиков на странице Site.Master для таких вещей, как вход в систему и корзина покупок, чтобы мы могли поместить OutputCache на некоторые из наиболее ресурсоемких страниц нашего приложения.

В настоящее время я использую тег, а затем записываю html из статического метода в коде позади.

      <asp:Substitution ID="Substitution1" runat="server" MethodName="RenderUserLogin"/>

    public static string RenderUserLogin( HttpContext incomingContext )
    {

        System.Text.StringBuilder osb = new System.Text.StringBuilder();

        osb.Append( "<p>" );
        if ( incomingContext.User.Identity.IsAuthenticated 
            && !string.IsNullOrEmpty( incomingContext.User.Identity.Name ) )
        {
            osb.Append( "Hi, <span class=\"name\">" );
            osb.Append( "<a href=\"/Users/Show\">" );

           // ... etc. ...

       return osb.ToString();

    }

Я бы предпочел иметь html-код в частичном представлении (.ascx) и отображать его в виде строки, потому что мне действительно не нравится иметь определенные html-элементы, используемые javascript, закопанные в скомпилированный код. *

Я посмотрел этот пост, который выглядит так, как будто это правильная идея, и его можно изменить, чтобы отобразить частичное в строку: Рендеринг Частичного через Контроллер

Существуют ли более понятные способы визуализации части строки без необходимости проходить через контроллер?

...