2017-09-13 102 views
0

我试图创造dnn9 DNN的角色吧模块, 前端部分发送请求,如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.Services, Dnn.PersonaBar.Recyclebin.Services,Dnn.PersonaBar.Roles.Services,Dnn.PersonaBar.Security.Services,Dnn.PersonaBar.Seo.Services,Dnn.PersonaBar.Servers.Services,Dnn.PersonaBar.SiteImportExport.Services,DNN。 PersonaBar.Sites.Services,Dnn.PersonaBar.SiteSettings.Services,Dnn.PersonaBar.SqlConsole.Services,Dnn.Perso naBar.TaskScheduler.Services,Dnn.PersonaBar.Themes.Services,Dnn.PersonaBar.UI.Services,Dnn.PersonaBar.Users.Services,Dnn.PersonaBar.Vocabularies.Services。DNN假面酒吧模块路由

问题是如何将我的名字空间添加到这个列表中 注册自定义api控制器派生自DnnApiController?

对于SPA模块它与ServiceRouteMapper简单,它是更多钞票DNN的角色吧模块?

回答

0

对于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 /用户/ CREATEUSER

完整的示例源代码here

+0

我得出我的API控制器从PersonaBarApiController如你所说,并得到了同样的错误。 看来,这是不够的,只是从PersonaBarApiController继承,我应该 有.dnn清单封装类型=“模块”?或type =“PersonaBar”应该够了? –

+0

我修改了更详细的答案。 – DotNetNuclear