如何在 ASP.NET 3.5 MVC 应用程序中动态添加菜单项到母版页

发布于 2024-07-07 00:49:21 字数 171 浏览 8 评论 0原文

我想根据会员安全登录角色动态地将菜单项添加到我的主页。 根据我在母版页 html 中读到的 RenderAction 也许可以做到这一点。 因为我正在摸索这个问题,所以我不确定它会是什么样子以及如何在控制器中检查我当前的角色。 我正在考虑创建一个表并将允许的菜单项与角色关系相关联,以便我可以传递到母版页以呈现动态菜单项。

I want to dynamically add menuitems to my master page based on membership security login role. From what I've read RenderAction in the master page html could perhaps do this. Since I'm fumbling thru this I am not sure how it would look and how in the controller I check my current role. I am considering creating a table and relating the allowable menu items to role relationship so I can pass to the master page for rendering the dynamic menu items.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我要还你自由 2024-07-14 00:49:23

如果这些“角色”是 ASP.NET 成员资格角色,则您可以使用带有 RoleGroup 标记的常规 LoginView 控件。 我发现它在 MVC 中工作得很好。 如果“角色”有所不同(例如,模型中的某些内容),则执行 Haacked 所写的操作。

If these "roles" are ASP.NET Membership roles, then you can use the regular LoginView control with the RoleGroup tag. It works fine in MVC, I've found. If the "roles" are something different (e.g., something in your model), then do what Haacked writes.

梦萦几度 2024-07-14 00:49:22

我不确定这是否是您要找的,但几周前我有一个同样的问题:

卡在创建“安全修剪”html.ActionLink 扩展方法

这允许我在母版页(或任何其他页面)中扩展一个菜单,控制对通过 Authorize 属性的菜单项:

这是 我的代码来执行此操作

I'm not sure if this is what you are looking for, but I had a question along the same lines a few weeks ago:

Stuck creating a "security trimmed" html.ActionLink extension method

This allowed me to extend a menu in the master page (or any other page) controlling the access to the menu items through the Authorize attribute:

Here is my code to do this.

绝不服输 2024-07-14 00:49:21

在控制器中,我将创建一个 MenuModel 类或类似的类,这是菜单的模型。 这将是一个仅数据的类。 在控制器中创建并填充它,同时考虑当前用户的访问权限。 这将允许您编写单元测试来确保您的安全代码正确。

然后我会通过 ViewData 将其传递给视图。 我会将其与知道如何基于 MenuModel 类呈现菜单的辅助方法结合起来。

In the controller, I would create a MenuModel class or the like, that is the model for your menu. It would be a data only class. Create and populate it in the controller, taking into consideration the current user's access permissions. This will allow you to write unit tests that ensure your security code is correct.

Then I'd pass that to the view via ViewData. I'd combine that with a helper method that knows how to render the menu based on the MenuModel class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文