在C#中禁用果园菜单项

时间:2018-07-13 13:41:12

标签: c# orchardcms orchardcms-1.10

我希望能够从页面禁用果园菜单项,而无需编写或更改任何html代码或javaScript。

我只想从C#中执行此操作。我已经使用了NavigationProvider类来做到这一点。

 public class NavigationProvider : INavigationProvider
{
    public Localizer T { get; set; }
    public ILogger Logger { get; set; }
    private readonly IOrchardServices _orchardServices;
    public string MenuName
    {
        get { return "Menu"; }
    }
    public NavigationProvider(IOrchardServices orchardServices)
    {
        this._orchardServices = orchardServices;
    }
    public void GetNavigation(NavigationBuilder builder)
    {
        try
        {
            if (this._orchardServices.Authorizer.Authorize(Permission.View))
            {
                builder.Add(T("MenuItem1"), "1", item => item.Action("Index",
                "ControllerName",
                new { area = ModuleName }));
            }
            else
            {
                 builder.Add(T("MenuItem1"), "1", item => item.Action("Index",
                "ControllerName",
               new { area = ModuleName  }).AddClass("disabled").LocalNav(false)).

            }
        }
        catch (Exception ex)
        {
            Logger.Error(ex, "Error on building custom menu.");
        }
    }
}

还尝试通过“ style = pointer-events:none”而不是禁用

1 个答案:

答案 0 :(得分:2)

我有同样的问题,您可以从此类中隐藏该菜单。我想这是解决您问题的唯一方法。 您可以使用addClass添加图标。