我有一个 XSLT 宏,它在循环中呈现一些标记和 .NET 用户控件宏。这就是 xslt 宏中的多个用户控件宏:
<xsl:for-each select="$node/* [@isDoc]">
//Some markup etc...
<xsl:value-of select="umbraco.library:RenderMacroContent('<?UMBRACO_MACRO NodeId="@id" macroAlias="LogTag"></?UMBRACO_MACRO>', @id)" disable-output-escaping="yes"/>
</xsl:for-each>
来自 usercontrols 标记的标记渲染得很好,但Page_load
没有执行中的所有内容。这是为什么?
这是用户控件标记:
<div class="logTag" id="Tag" runat="server">
<img src="someimage.png" alt="image"/>
</div>
和代码隐藏:
public int NodeId { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)return;
var tools = new Tools();
var userId = (Int32)Membership.GetUser().ProviderUserKey;
Tag.Visible = tools.GetLog(NodeId, userId);
Response.Write("Node=" + NodeId + " - User=" + userId + "<br />");
}
Response.Write 或 Tag.Visible 都不起作用。我已经尝试直接在空白上测试 usercontrol 宏 - 工作正常!这是不可能的,还是我做错了什么?