2014-02-05 3 views
2

У меня возникла проблема с добавлением пользовательского контроллера к моей Piranha CMS. Я установил новый сайт и установил его из шаблона, и все базовые функции работают хорошо. Я добавил меню в разделе менеджера, используя следующий код из документации:Piranha CMS Management Custom Controller не найден

 Manager.Menu.Add(new Manager.MenuGroup() 
     { 
      InternalId = "MEProducts", 
      Name = "Products" 
     }); 

     Manager.Menu.Where(m => m.InternalId == "MEProducts").Single().Items = 
      new List<Manager.MenuItem>() { 
      new Manager.MenuItem() { 
       Name = "Products", 
       Action = "productlist", 
       Controller = "products", 
       Permission = "ADMIN", 
       SelectedActions = "productlist,productedit" 
      }, 
      new Manager.MenuItem() { 
       Name = "Product groups", 
       Action = "productgrouplist", 
       Controller = "products", 
       Permission = "ADMIN", 
       SelectedActions = "productgrouplist,productgroupedit" 
      } 
      }; 

В этом меню отображается в менеджере интерфейса штрафа, проблема в том, когда я нажимаю на пункт меню путь контроллера не может быть найденный.

Контроллер класс находится в Areas/менеджер/Контроллеры/ProductsController.cs и код ниже

namespace MyApp.Areas.Manager.Controllers 
{ 
public class ProductsController : ManagerController 
{ 
    // 
    // GET: /Manager/Products/ 

    public ActionResult Index() 
    { 
     return View(); 
    } 
    public ActionResult ProductList() 
    { 
     return View(); 
    } 
    public ActionResult ProductEdit(string id = "") 
    { 
     return View(); 
    } 
} 
} 

Есть файлы представления ProductList и ProductEdit в Areas/менеджер/Views/Products/

Моего веб-конфигурация содержит следующую строку, я считаю, мне нужно

<add key="manager_namespaces" value="MyApp.Areas.Manager.Controllers" /> 

Когда я нажимаю на продукции ссылку в Реагирах er Я получаю

Ресурс не найден. Описание: HTTP 404. Ресурс, который вы ищете (или его зависимости), мог быть удален, изменилось его имя или временно недоступно. Просмотрите следующий URL-адрес и убедитесь, что оно написано правильно. Запрошенный URL:/MyApp/менеджер/Продукты/ProductList

страница/MyApp/менеджер/страница отображает штраф для конфигурации по умолчанию.

Я уверен, что что-то пропустил или что-то сделал неправильно, я просто не уверен, где он.

ответ

1

Я попытался воспроизвести ваши проблемы, но он отлично работает с вашим продуктовым контроллером в моем проекте. Я застегнул мой тест-проект и загрузить его на мой Dropbox, так что вы можете скачать и сравнить его с вашим проектом:

EDIT Удалены загрузить ссылку как автор скачал файл

Пожалуйста, дайте мне узнайте, когда вы загрузили zip-файл, чтобы я мог его удалить.

С уважением

Хакан

+0

Скачано спасибо. Ваш тестовый проект работает отлично, я буду использовать это, чтобы понять, что не так с моим. Большое вам спасибо за это. – Lepon

+0

Отлично, когда вы узнаете, что вызвало ошибку, сообщите мне, если где-то нужно уточнить документацию! –

+0

Если кто-то заинтересован, я нашел то, что сделал неправильно. На http://piranhacms.org/docs/extend/custom-entities говорится использовать <добавить ключ = "manager_namespaces" Value = "MyApp.Controllers" /> Но на самом деле это нужно находится в Lepon

Смежные вопросы