我正在尝试在 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) 中并将其呈现为字符串,因为我真的不喜欢将 javascript 使用的特定 html 元素隐藏在编译代码中。
我看过这篇文章,看起来这是一个有效的想法,可以修改为将部分渲染为字符串: 通过控制器渲染部分
有没有更简洁的方法可以将部分渲染到字符串而无需通过控制器?