我创建了一个Web控件,该控件基本上是用于存放移动横幅的div,但是如果用户是管理员,则希望将其隐藏

我试过了:

<mob:MobileBanner runat="server" ID="MobileBanner" Visible='<%# Not HttpContext.Current.User.IsInRole("Admin") %>' />


但它似乎不起作用。

我也在考虑围绕html,但似乎无法正常工作,因此它会检查您是否是管理员,如果不是,它会将广告代码写入客户端,其中包括css链接。

有一个类似的问题(how to enable and disable button based on user role?),但这是ASP.NET服务器端按钮,而不是仅包含html的基本Web控件。

那些需要代码的人,将一个新的Web控件添加到项目中,然后粘贴此代码。

<link href = "my_css_file_here.css" rel="stylesheet" type="text/css" />

<div Class="my_banner_container">
    <!--My banner code goes here -->
</div>


我知道我可以使用runat =“ server”在主文档中创建一个容器,然后使用:

my_container.Visible = Not HttpContext.Current.User.IsInRole("Admin")


但我还需要更改padding-top:130px;到padding-top:50px;并在管理员注销或用户不是管理员时换回。

我知道是否可以为非管理员提供这样的链接:

<link href = "my_css_file_130_here.css" rel="stylesheet" type="text/css" runat="server" />


然后变成管理员:

<link href = "my_css_file_50_here.css" rel="stylesheet" type="text/css" runat="server" />


然后从后面的代码中为padding-top设置2个不同的CSS,并根据用户是否为管理员来更改href

body {
     padding-top: 130px;
}


要么

body {
     padding-top: 50px;
}


关于如何实现这一目标或比我复杂的想法更好的想法?

最佳答案

如果您不想要它,请不要渲染它。如果用户不具有Admin角色,则仅在下面呈现。

<%If Not HttpContext.Current.User.IsInRole("Admin")
Then
    <mob:MobileBanner runat="server" ID="MobileBanner" />
End If %>

09-30 15:26
查看更多