DNN Persona Bar模块路由
DNN Persona Bar module routing
我正在尝试为 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.PersonaBar.TaskScheduler.Services, Dnn.PersonaBar.Themes.Services, Dnn.PersonaBar.UI.Services, Dnn.PersonaBar.Users.Services, Dnn.PersonaBar.Vocabularies.Services.
问题是如何将我的命名空间添加到此列表
注册从 DnnApiController 派生的自定义 api 控制器?
对于 SPA 模块,使用 ServiceRouteMapper 很简单,对于 DNN 角色栏模块是否可行?
对于 PersonaBar 扩展,您的 webapi 服务控制器应该继承自 PersonaBarApiController。
[MenuPermission(MenuName = "Dnn.Users")]
public class UsersController : PersonaBarApiController
{
[HttpPost]
public HttpResponseMessage CreateUser(CreateUserContract contract)
{
...
}
}
要安装为 PersonaBar 菜单扩展,您的 dnn 清单应如下所示:
<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
完整示例源代码here
我正在尝试为 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.PersonaBar.TaskScheduler.Services, Dnn.PersonaBar.Themes.Services, Dnn.PersonaBar.UI.Services, Dnn.PersonaBar.Users.Services, Dnn.PersonaBar.Vocabularies.Services.
问题是如何将我的命名空间添加到此列表 注册从 DnnApiController 派生的自定义 api 控制器?
对于 SPA 模块,使用 ServiceRouteMapper 很简单,对于 DNN 角色栏模块是否可行?
对于 PersonaBar 扩展,您的 webapi 服务控制器应该继承自 PersonaBarApiController。
[MenuPermission(MenuName = "Dnn.Users")]
public class UsersController : PersonaBarApiController
{
[HttpPost]
public HttpResponseMessage CreateUser(CreateUserContract contract)
{
...
}
}
要安装为 PersonaBar 菜单扩展,您的 dnn 清单应如下所示:
<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
完整示例源代码here