2014-01-21 60 views
3

当我使用REST Sharp下面的代码时,我无法通过listOfSelectedTicketsIds它始终为空。将int列表传递给RestSH客户端的Web API

请求休息夏普.NET客户端的

var _stDeveloperApi = new RestClient("http://127.0.0.1/"); 
      var url = string.Format("api/v1/SignalR/MultiClickMode"); 
      var listOfSelectedTicketsIds = new List<int> { 2, 3 }; 
      var request = new RestRequest(url, Method.GET); 
      request.AddParameter("listOfSelectedTicketsIds", listOfSelectedTicketsIds, ParameterType.GetOrPost); 
      var response = _stDeveloperApi.Execute(request); 

的Web API方法

[HttpGet] 
     public HttpResponseMessage MultiClickMode(List<int> listOfSelectedTicketsIds) 
     { 
      var response = new HttpResponseMessage(); 

      try 
      { 

      } 
      catch (Exception ex) 
      { 
       response = Request.CreateResponse(HttpStatusCode.InternalServerError); 
      } 

      return response; 
     } 

回答

8

更改您的客户端代码这样。

var _stDeveloperApi = new RestClient("http://127.0.0.1/"); 
var url = string.Format("api/v1/SignalR/MultiClickMode"); 
var listOfSelectedTicketsIds = new List<int> { 2, 3 }; 
var request = new RestRequest(url, Method.GET); 
listOfSelectedTicketsIds.ForEach(t => 
      request.AddParameter(
       "listOfSelectedTicketsIds", t, ParameterType.GetOrPost)); 
var response = _stDeveloperApi.Execute(request); 

像这样更改web API操作方法签名。

public HttpResponseMessage MultiClickMode(
           [FromUri]List<int> listOfSelectedTicketsIds) 
相关问题