DNN Persona Bar модуль маршрутизации

Я пытаюсь создать модуль панели персонажа dnn для dnn9, интерфейсная часть отправляет запрос к URL-адресу, например - http://dnndev.me/API/personaBar/ControllerName/ActionName и я получаю сообщение об ошибке - Невозможно найти контроллер для http://dnndev.me/API/personaBar/ControllerName/ActionName Искал в пространствах имен: Dnn.PersonaBar.AdminLogs.Services, Dnn.PersonaBar.ConfigConsole.Services, Dnn.PersonaBar.CssEditor.Services, Dnn.PersonaBar.Extensions.Services, Dnn.PersonaBar.Licensing.Services, Dnn.PersonaBar.Pages.Svices, Dnn.PersonaBar.Recyclebin.Services, Dnn.PersonaBar.Roles.Services, Dnn.PersonaBar.Security.Services, Dnn.PersonaBar.S.PersonaBar.Servers.Services, Dnn.PersonaBar.SiteImportExport.Svices, Dnn.PersonaBar.Sites.Services, Dnn.PersonaBar.SiteSettings.Services, Dnn.PersonaBar.SqlConsole.Services, Dnn.PersonaSer. Темы.Услуги, Dnn.PersonaBar.UI.Услуги, Dnn.PersonaBar.Users.Svices, Dnn.PersonaBar.Vocabularies.Services.

Вопрос в том, как добавить мое пространство имен в этот список, чтобы зарегистрировать пользовательский контроллер API, полученный из DnnApiController?

Для модуля SPA это просто с ServiceRouteMapper, возможно ли это для модуля панели персонажа DNN?

1 ответ

Решение

Для расширения PersonaBar ваши контроллеры службы webapi должны наследоваться от PersonaBarApiController.

[MenuPermission(MenuName = "Dnn.Users")]
public class UsersController : PersonaBarApiController
{
    [HttpPost]
    public HttpResponseMessage CreateUser(CreateUserContract contract)
    {
        ...
    }
}

Ваш dnn-манифест должен выглядеть примерно так, чтобы установить его как расширение меню PersonaBar:

<package name="Dnn.PersonaBar.Users" type="PersonaBar" version="01.06.00">
...
    <component type="PersonaBarMenu">
          <menu>
            <identifier>Dnn.Users</identifier>
            <moduleName>Users</moduleName>
            <controller>Dnn.PersonaBar.Users.Components.UsersMenuController, Dnn.PersonaBar.Users</controller>
            <resourceKey>nav_Users</resourceKey>
            <path>Users</path>
            <parent>Manage</parent>
            <order>10</order>
            <defaultPermissions>Administrators</defaultPermissions>
          </menu>
    </component>
...
</package>

Это приводит к пути к конечной точке: /API/PersonaBar/Users/CreateUser

Полный пример исходного кода здесь

Другие вопросы по тегам