为.NET Web窗体中的每个用户角色创建菜单

时间:2018-12-20 21:08:47

标签: asp.net webforms

我一直在从代码的后面进行典型的菜单操作,我只是根据其角色显示和隐藏div,但是代码变得很长,因为我必须为每个用户隐藏每个角色的每个div。

我的问题是...有更好的做法吗?我也刚刚发现了登录视图,这是Web窗体中的方法吗?

2 个答案:

答案 0 :(得分:1)

您后面的代码不应负责更改视图的显示方式,这是视图的工作(这就是为什么存在asp控件的原因)。

一种方法是让一个逻辑建立一个List,并将此列表作为asp控件的DataSource传递。

实际上,有一个很好的控件,允许您迭代该元素集合,为该列表中的每个元素定义显示模板,在这里您可以找到详细信息:

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.7.2

我希望这会让您走上正确的道路。

答案 1 :(得分:1)

在WebForms应用程序中执行此操作的常见方法是使用SiteMap

可以将站点地图链接到角色,以便仅显示用户角色可访问的那些元素。并且可以将最新版本制作为清晰合理地显示,因为可以根据需要设置div的样式(如果使用内联样式,原始版本会产生很多)。

对于MVC网站地图,也有类似的解决方案,例如this one