请教大家个问题?

我现在想实现一个功能:不同的用户登录以后显示的导航链接不一样,比如A用户登录看到的页面导航和B看的就不一样!我的页面导航是写在master页中的,用户登录模块是写在一个ascx页中的,我本来是想在用户登录后也就是在master页中根据用户登录的身份来动态显示要加载的导航菜单,这样的思路我试过了,出不来!问问大家应该怎么弄了?

master中ASPX页代码(不同用户的大部分导航是一样的,所以我就写死了,就有部分导航是有些用户专有的,比如下面的第三个超链接就是某个用户登录后才显示的)

<div id="nav">
            <div class="nav_item"><a href="/Default.aspx">首页</a></div>
            <div class="nav_item"><a href="/plat/platDesc.aspx">使用说明</a></div>
            <div class="nav_item" id="post" runat="server" visible="false"><a href="#">送检</a></div>
            <div class="nav_item"><a href="/news/newslist.aspx">业界动态</a></div>
            <div class="nav_item"><a href="/slice/sliceList.aspx">切片库</a></div>
            <div class="nav_item"><a href="/expert/expertDesc.aspx">专家介绍</a></div>
            <div class="nav_item"><a href="/contact/contact.aspx">联系我们</a></div>
        </div>

master后台代码:

if (Session["UserInfo"] != null)
        {
            User user = (User)Session["UserInfo"];
            switch (user.Type)
            {
                case 2:
                    post.Visible = true;
                    break;
                default:
                    break;
            }
        }

在用户登录控件中,也就是ascx中,登录成功后我给session["UserInfo"]赋值

慕的地8271018
浏览 412回答 6
6回答

慕桂英4014372

你的思路没错,是应该在master上对用户身份来进行加载。不过最好贴出代码来看下。

慕码人8056858

导航栏,是否考虑也做成一个控件,在用户登录的时候根据ID动态加载要显示的菜单.

凤凰求蛊

把用户所具备的操作权限存入数据库中,用户登陆成功的时候,根据自己的权限生成导航菜单。

犯罪嫌疑人X

恩,你的意思是把导航的链接,还有显示文本什么的都放到数据库里,读的时候动态的生成导航的HTML吗?如果是这样做的话,动态生成的HTML需要大量的字符串拼接,很麻烦啊,是这么做吗?

九州编程

@yixin841210:是的,现在的系统大多是这样做的,因为你导航排版基本是有序的,只需要循环生成。

LEATH

@Astar: 恩,明白了谢谢你!~
打开App,查看更多内容
随时随地看视频慕课网APP