1

我有一个导航栏,我想成为部分导航栏。导航栏的内容会略有不同,例如,如果用户已登录,或者您在某个页面上,您可能会获得额外的链接。

我如何最好地处理向部分提供数据?我应该在 ViewData 中为每个控制器传递这个吗?

选项列表对我的帮助最大,因为我可能不得不使用一些不同的技术。

4

2 回答 2

1

为它制作一个模型。创建一个类NavModel,该类在其构造函数中收集它所代表的所有数据(友好的用户名、当前页面等)并将它们作为公共属性发布。然后像往常一样将模型绑定到视图。哦,避免在视图中直接实例化导航模型,而是创建一个控制器操作(称为导航),它实例化NavModel并返回导航部分视图。将该操作标记为ChildActionOnlyAttribute客户端无法请求该操作。然后@Html.RenderAction在需要渲染部分导航的视图中使用(通常是布局视图)。

于 2013-09-26T19:49:41.030 回答
1

前段时间我遇到了同样的问题,当我必须向管理员显示一些菜单,向超级管理员显示一些菜单,向其他人显示一些菜单时......我在那种情况下做了什么。我做了一个返回部分视图的动作并将其呈现在母版页上。视图是强类型的。(一个属性代表用户角色的类。)所以使用强类型类我在我的剃刀视图中编写了 if 和 else if 逻辑......这解决了我的问题......希望这会对你有所帮助。

于 2013-09-26T19:57:04.203 回答