gpt4 book ai didi

asp.net-mvc-4 - 基于角色的导航

转载 作者:行者123 更新时间:2023-12-04 05:52:53 26 4
gpt4 key购买 nike

我一直试图想出一种方法来为我正在从事的项目创建基于动态角色的导航解决方案。

导航应仅显示与用户角色相关的链接,例如:管理员将拥有查看应用程序统计信息、管理客户帐户等的链接,而标准用户将拥有管理其帐户、与 friend 交流的链接, 等等..

我目前有一个名为 Navigation 的局部 View ,其中包含一些用于角色检查的基本条件语句以及用于显示适当链接的混合标记。这有效,但是,我知道它可能很快变得无法管理。

导航部分 View :

@if(User.IsInRole("Admin")) {
<li><a href="#">Statistics</a></li>
<li><a href="#">Accounts</a></li>
<li><a href="#">Dashboard</a></li>
}
@if(User.IsInRole("User")) {
<li><a href="#">Account</a></li>
<li><a href="#">Friends</a></li>
}
// code omitted

有没有办法让这个逻辑脱离 View 并让 Controller 处理这个?

最佳答案

解决方案

按照建议,我为每个角色创建了一个名为 Menu 的 ChildAction 和部分 View 。在操作中,我使用一些条件语句进行一些角色检查并呈现适当的 View 。

这将条件语句排除在 View 之外,这使其成为更清晰的解决方案。

我确信可以做一些事情来整理它,我将继续努力改进它。

这是我使用的解决方案。

在我希望菜单出现的布局 View 中,我使用了它。

@Html.Action("Menu", "Navigation")

然后我创建了一个名为 Navigation 的 Controller 并添加了一个名为 Menu 的 Action。
public class NavigationController : Controller
{

[ChildActionOnly]
public ActionResult Menu()
{
if (Roles.IsUserInRole("Administrator"))
{
return PartialView("_NavigationAdmin");

}

return PartialView("_NavigationPublic");
}

}

关于asp.net-mvc-4 - 基于角色的导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com