2017-02-24 74 views
0

您好,我正在开发与angular2应用程序的web api应用程序。我正在尝试如下获取请求。如何调用web api get angularjs中的方法?

以下是我的angularjs代码。在下面的代码角色是可选参数。

var role = "SUPER_ADMIN"; 
    var url = '/api/users/' + role; 
    return $http.get(url).then(function (response) { 
     return response.data; 
    }); 

这是我的控制器代码。

[RoutePrefix("api/users")] 
    public class usersController : ApiController 
{ 
     [LoginCheck] 
     [SuperAdmin] 
     public HttpResponseMessage Get(string role) 
     { 
     //business logic here 
     } 
} 

我还有一个get方法如下。这被称为insted以上。

[HttpGet] 
    [ActionName("me")] 
    public HttpResponseMessage Get() 
    { 
    } 

Aboce代码不起作用。我可以在这里得到一些帮助吗?任何帮助,将不胜感激。谢谢。

+0

任何控制台 – Sankar

+0

是错误谢谢。无法加载资源:服务器响应状态为405(方法不允许)http:// localhost:22045/api/users/SUPER_ADMIN –

+0

尝试在此行之前放置'[HttpGet]'公共'HttpResponseMessage Get(字符串角色) '。 405表示**请求行中收到的方法由源服务器知道,但目标资源不支持** – Sankar

回答

0

你可不可以将[Route]属性放在你的两个动作上,并在你的api中启用AttributeRouting?所以,如果你这样做,那么你通过指定具体的动作名称来调用你的端点。因此,像这样:

[LoginCheck] 
    [SuperAdmin] 
    [Route("AdminGet/{role}")] 
    public HttpResponseMessage Get(string role) 
    { 
    //business logic here 
    } 

    [HttpGet] 
    [ActionName("me")] 
    [Route("UserGet")] 
    public HttpResponseMessage Get() 
    { 
    } 

和你的终点变成: http://servername/api/users/adminget?role= “东西” http://servername/api/users/userget