我在尝试从 Umbraco CMS v12 中设置的自定义仪表板插件执行请求时遇到一些问题。每当我调用 /get/ 方法时,我都会在后台收到 404 错误。如果需要任何其他信息,请告诉我。
App_Plugins/MyPlugin/Controllers/MyPluginController.cs:
namespace MyPlugin.Controllers
{
public class MyPluginController : UmbracoAuthorizedApiController
{
public MyPluginController(UmbracoDatabase database)
{}
[HttpGet]
public dynamic GetTest()
{
dynamic settings = new ExpandoObject();
settings.data = "Add your fetched data here";
return settings;
}
}
App_Plugins/MyPlugin/Controllers/myplugin.controller.js:
angular
.module('umbraco')
.controller(
'MyPlugin.MyPluginController',
function ($scope, MyPluginResource) {
var vm = this
MyPluginResource.get().then(function (response) {
vm.data = response.data
console.log(vm.data)
})
}
)
App_Plugins/MyPlugin/resources/myplugin.resource.js:
angular
.module('umbraco.resources')
.factory('MyPluginResource', function ($q, $http, umbRequestHelper) {
return {
get: function () {
return umbRequestHelper.resourcePromise(
$http.get('/backoffice/api/MyPlugin/GetTest'),
'Failed to fetch data'
)
}
}
})
App_Plugins/MyPlugin/views/myplugin.html
<div ng-controller="MyPlugin.MyPluginController as vm"></div>
在包中创建 Umbraco API 控制器时,我需要将 Umbraco.Cms.Web.Common.Attributes.PluginController 属性添加到我的控制器中,如下所示:
namespace MyPlugin.Controllers
{
[PluginController("MyPlugin")]
public class MyPluginController : UmbracoAuthorizedApiController
{
public MyPluginController()
{}
[HttpGet]
public dynamic GetTest()
{
dynamic settings = new ExpandoObject();
settings.data = "Add your fetched data here";
return settings;
}
}
然后更新了myplugin.resource.js中的路径:
angular
.module('umbraco.resources')
.factory('MyPluginResource', function ($q, $http, umbRequestHelper) {
return {
get: function () {
return umbRequestHelper.resourcePromise(
$http.get('/backoffice/MyPlugin/MyPlugin/GetTest'),
'Failed to fetch data'
)
}
}
})