首页 新闻 会员 周边

关于C# MVC 如何给母版页传递参数

0
悬赏园豆:10 [已关闭问题] 关闭于 2017-06-17 14:45

如题,现在做个系统,需要根据登录的不同角色给定不同的权限,生成不同的菜单,现在不知道如何给母版页传参,网上说的ViewBag啊啥的看不懂啊,求大神贴几句关键代码啊

姚刘乐的主页 姚刘乐 | 初学一级 | 园豆:70
提问于:2017-05-27 08:46
< >
分享
所有回答(4)
0

MVC中叫布局页(_Layout.cshtml) 。只需要在具体的页面中 {ViewBag.Title="Index Page"},然后在布局页中使用: @ViewBag.Title 即可。

幻天芒 | 园豆:37175 (高人七级) | 2017-05-27 08:57

这个具体页面是指什么?比如我有个登录页面,后台判定登录人员权限为1,然后把这个1传递给母版页,在母版页接收后显示权限为1的菜单....刚入行不久哈..请多说点...谢谢~

支持(0) 反对(0) 姚刘乐 | 园豆:70 (初学一级) | 2017-05-27 09:06

@姚刘乐: 那登录页就是具体页面。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2017-05-27 09:10
0

这种东西呢,如果不理解,就不要理解先。

动手试验就知道了,你可以不理解的。

爱编程的大叔 | 园豆:30839 (高人七级) | 2017-05-27 09:31

恩啊,我在试哈,这是在登录页面写的,这个oo可以取到值

 <script type="text/javascript">

        var oo = "@ViewBag.oo";
      
        alert(oo);
       
    </script>

可是在母版页这样写是获取不到的哎╮(╯▽╰)╭

<script type="text/javascript">
alert("@ViewBag.xo");


</script>

支持(0) 反对(0) 姚刘乐 | 园豆:70 (初学一级) | 2017-05-27 09:36
1

1、第一种方式你可以用ViewBag,或者用TempData都可以的。但是这不是最好的解决方案。

2、你可以把权限部分单独做个Action 页面,在Action页面控制好页面的权限菜单等等,然后在母版页里用Html.Action引入这个单独的Action页面即可。

3、你可以封装一个Context,然后直接可以在模板页中获取菜单权限。可以参考:

http://www.cnblogs.com/emrys5/p/asp-net-mvc-1.html

4、还有就是你也可以每次菜单单独用ajax加载也是可以的。

以上都可以解决你问的问题。。。

Emrys5 | 园豆:223 (菜鸟二级) | 2017-05-27 10:08
0

用session

姚刘乐 | 园豆:70 (初学一级) | 2017-06-17 14:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册