DnnApiController 无法找到 "Path x" 的控制器。在命名空间中搜索:“命名空间 y”
DnnApiController Unable to locate a controller for "Path x". Searched in namespaces: " Namespace y"
我正在尝试在 DNN 中创建简单的网络 api,
这是我的代码:
1st Register RouteMapper(我设置断点调用没问题)
namespace Commission7.Controllers
{
public class RouteMapper : IServiceRouteMapper
{
public void RegisterRoutes(IMapRoute mapRouteManager)
{
mapRouteManager.MapHttpRoute("Commission7", "default", "{controller}/{action}/{id}", new { id = RouteParameter.Optional }, new[] { "Commission7.Controllers" });
}
}
}
第二个控制器:
namespace Commission7.Controllers
{
[AllowAnonymous]
class SubmitController : DnnApiController
{
private readonly Commision7Context _dbContext = new Commision7Context();
[AllowAnonymous]
[HttpGet]
public bool SaveVisits()
{
return true;
}
}
}
当我调用它时抛出 Ajax 或从浏览器直接点击:
http://localhost/dnn/DesktopModules/Commission7/api/Submit/SaveVisits
我得到:
Unable to locate a controller for http://localhost/dnn/DesktopModules/Commission7/api/Submit/SaveVisits. Searched in namespaces: Commission7.Controllers.
请注意,名为 Commission 7 的 Module 文件夹位于 DesktopModules 文件夹中。谁能帮我这个 ?有没有我忘记的配置?
我发现了问题,class SubmitController
是私有的 class,它应该是 public 才能用于 ajax 和直接调用。
如果其他人遇到此问题,请同时检查您是否具有该属性...
optimizeCompilations="true"
...在您的 web.config 文件的 <compilation>
标签中设置。我一直收到错误...
dnn unable to locate a controller XXX searched in namespaces XXX
...直到我将其设置为 false.. 然后错误消失,因此我可以将其设置回 true。
我正在尝试在 DNN 中创建简单的网络 api,
这是我的代码: 1st Register RouteMapper(我设置断点调用没问题)
namespace Commission7.Controllers
{
public class RouteMapper : IServiceRouteMapper
{
public void RegisterRoutes(IMapRoute mapRouteManager)
{
mapRouteManager.MapHttpRoute("Commission7", "default", "{controller}/{action}/{id}", new { id = RouteParameter.Optional }, new[] { "Commission7.Controllers" });
}
}
}
第二个控制器:
namespace Commission7.Controllers
{
[AllowAnonymous]
class SubmitController : DnnApiController
{
private readonly Commision7Context _dbContext = new Commision7Context();
[AllowAnonymous]
[HttpGet]
public bool SaveVisits()
{
return true;
}
}
}
当我调用它时抛出 Ajax 或从浏览器直接点击:
http://localhost/dnn/DesktopModules/Commission7/api/Submit/SaveVisits
我得到:
Unable to locate a controller for http://localhost/dnn/DesktopModules/Commission7/api/Submit/SaveVisits. Searched in namespaces: Commission7.Controllers.
请注意,名为 Commission 7 的 Module 文件夹位于 DesktopModules 文件夹中。谁能帮我这个 ?有没有我忘记的配置?
我发现了问题,class SubmitController
是私有的 class,它应该是 public 才能用于 ajax 和直接调用。
如果其他人遇到此问题,请同时检查您是否具有该属性...
optimizeCompilations="true"
...在您的 web.config 文件的 <compilation>
标签中设置。我一直收到错误...
dnn unable to locate a controller XXX searched in namespaces XXX
...直到我将其设置为 false.. 然后错误消失,因此我可以将其设置回 true。