向 UmbracoAuthorizedApiController 发出请求时出现 404 错误

问题描述 投票:0回答:1

我在尝试从 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>
c# angularjs umbraco
1个回答
0
投票

在包中创建 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'
                )
            }
        }
    })
© www.soinside.com 2019 - 2024. All rights reserved.