Я пытаюсь использовать кеширование пончиков на странице 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, закопанные в скомпилированный код. *
Я посмотрел этот пост, который выглядит так, как будто это правильная идея, и его можно изменить, чтобы отобразить частичное в строку:
Рендеринг Частичного через Контроллер
Существуют ли более понятные способы визуализации части строки без необходимости проходить через контроллер?