我想做的是,能够将两个属性传递给用户控件,ListName和Permission,如下所示:
然后在实际的检查用户控件中,有类似于:的内容
// determine permission magic placeholder
if (DoesUserHavePermissions(perm))
{
// render nested HTML content
}
else
{
// abort rendering as to not show nested HTML content
}
%>
我已经阅读了creating a templated control on MSDN上的页面,虽然这样可行 - 但对于我想要做的事情来说,这似乎有点矫枉过正。是否有一个控件已经基于布尔表达式或更简单的模板示例呈现内容?
更新
可以在ascx中使用以下代码来建模一个非常简单的版本:
void Page_Init()
{
if (Allowed != null)
{
Panel container = new Panel();
Allowed.InstantiateIn(container);
PermissionBasedMessage.Controls.Add(container);
}
}
[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate Allowed { get; set; }
注意:我过分简化了此示例代码的Page_Init方法中的检查。可以根据需要添加额外的逻辑检查。
并在调用HTML页面中引用它:
Allowed Access