How do I add a menu item into the administration area from a plugin nopcommerce and reference my controller properly

Viewed 71

I know nopCommerce gives this example when you want to add a menu item into the admin dashboard from a plugin: nopCommerce documentation Admin menu

However, my problem is my controller is not called This is my code in plugin.cs:

var subMenuItemTwo = new SiteMapNode
        {
            SystemName = "AttestationEditor",
            Title = "Edit Attestations (Name and Cancellation Reason only)",
            ControllerName = "CarbonOffsetPlatformAdminController",
            ActionName = "AttestationEditing",
            IconClass = "fa fa-dot-circle-o",
            Visible = true,
            RouteValues = new RouteValueDictionary
            {
                { "area", "AttestationEditorPage"}
            },

            
            
            


        };


        //Ich füge mein menuItem hinzu
        rootNode.ChildNodes.Add(menuItem);
        menuItem.ChildNodes.Add(subMenuItem);
        menuItem.ChildNodes.Add(subMenuItemTwo);

This is my Action method in CarbonOffsetPlatformAdminController.cs:

    [HttpGet]
    public IActionResult AttestationEditing()
    {
        var attestationEditing = new AttestationEditorModel();
        return View("~/Views/AttestationEditing/AttestationEditorStart.cshtml", attestationEditing);
    }

what am I doing wrong? Thanks in advance

1 Answers

You have problem with ControllerName and RouteValues.

Replace

var subMenuItemTwo = new SiteMapNode
        {
            SystemName = "AttestationEditor",
            Title = "Edit Attestations (Name and Cancellation Reason only)",
            ControllerName = "CarbonOffsetPlatformAdminController",
            ActionName = "AttestationEditing",
            IconClass = "fa fa-dot-circle-o",
            Visible = true,
            RouteValues = new RouteValueDictionary
            {
                { "area", "AttestationEditorPage"}
            },
        };

By

var subMenuItemTwo = new SiteMapNode
        {
            SystemName = "AttestationEditor",
            Title = "Edit Attestations (Name and Cancellation Reason only)",
            ControllerName = "CarbonOffsetPlatformAdmin", //Change here
            ActionName = "AttestationEditing",
            IconClass = "fa fa-dot-circle-o",
            Visible = true,
            RouteValues = new RouteValueDictionary
            {
                { "area", "Admin"} //Change here
            },    
        };
Related