如何解决ABP Framework ::如何根据功能显示/隐藏菜单
我正在操场上学习有关新abp framework的许多知识。祝贺所有参与此活动的人们,真的很好!!
我对如何将功能应用于应用程序中的菜单有疑问。
我已经使用FeatureDefinitionProvider抽象类创建了新功能,并且可以在运行时启用或禁用主机或租户配置。酷!
我创建了一个实现IMenuContributor界面的新菜单,并且可以在运行时看到我的新菜单。酷!
现在,也许我错了。我想应用RequiredFeature DataNotation来显示/隐藏基于功能的菜单。像这样:
[RequiresFeature("SalesModule")]
public class SalesMenuContributor : IMenuContributor
{
//Sales menu contributor
}
当我从“主机/租户”停用功能时,菜单不会隐藏。我真的不知道我在想什么。
感谢您的帮助,
解决方法
您应该使用IFeatureChecker Service来检查功能。您可以通过菜单提供者中的context.ServiceProvider来解决IFeatureChecker
服务。这样,您可以有条件地将菜单项添加到菜单中。
[RequiresFeature]
仅适用于控制器或应用程序服务。
以下是基于Hilalkan答案的代码:
public class SalesMenuContributor : IMenuContributor
{
var featureChecker = context.ServiceProvider.GetRequiredService<IFeatureChecker>();
if (await featureChecker.IsEnabledAsync("SalesModule"))
{
//[add your menu item][1]
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。