[C#]调用自定义方法从 web api 使用 angularjs $resource

发布时间: 2017/2/24 2:51:45
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

这里是我 Web Api 行动︰

[RoutePrefix("api/CustomTemplate")]
public class CustomTemplateController : ApiController
{
    [HttpGet]
    [Route("GetCustomTemplate")]
    public IHttpActionResult GetCustomTemplate()
    {
         //Code 
    }
}

这里是我的 angularjs 文件︰

服务文件︰

'use strict';
app.factory('customService', ['$resource', 'ngAuthSettings', function ($resource, ngAuthSettings) {

var serviceBase = ngAuthSettings.apiServiceBaseUri;

return $resource(serviceBase + 'api/CustomTemplate/', {}, {
    query: { method: 'GET', isArray: true },
    getCustomTemplate: {
        url: 'GetCustomTemplate',
        method: 'GET',
        isArray: false
    }
});
}]);

我的 angularjs 控制器︰

'use strict';
app.controller('customController', [
    '$scope', 'customService', function ($scope, customService) 
    {
        customService.getCustomTemplate({},function (customTemplate) 
        {
            $scope.customTemplate = customTemplate;
        });        
    }
]);

我的问题是,我不能叫 GetCustomTemplate 从 angularjs。请有人可以告诉我,我做错了吗?

解决方法 1:

你必须调用完整的 URL

'use strict';
app.factory('customService', ['$resource', 'ngAuthSettings', function ($resource, ngAuthSettings) {

var serviceBase = ngAuthSettings.apiServiceBaseUri;

return $resource(serviceBase + 'api/CustomTemplate/', {}, {
    query: { method: 'GET', isArray: true },
    getCustomTemplate: {
        url: serviceBase +'api/CustomTemplate/GetCustomTemplate', //full URL + custom action
        method: 'GET',
        isArray: false
    }
});
}]);
官方微信
官方QQ群
31647020