ユーザーログインやショッピングカートなどの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();
}
コンパイルされたコードにJavaScriptで使用される特定のhtml要素を埋め込むのは本当に好きではないので、HTMLコードを部分ビュー(.ascx)に入れて、それを文字列にレンダリングしたいと思います。
私はこの投稿を見ましたが、これは有効なアイデアであり、パーシャルを文字列にレンダリングするように変更できます: コントローラーを介してパーシャルをレンダリングする
コントローラを経由せずに文字列にパーシャルをレンダリングするためのよりクリーンな方法はありますか?