2017-09-13 46 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