2016-08-27 7 views
0

Я использую ниже код в приложении MVCне в состоянии передать список объектов для Web API

Facility fcl = new Facility(); 
fcl.AD_LN_1 = "aaaaaa"; 
fcl.AD_LN_2 = "vbbbbbbbbb"; 
fcl.CITY_NM = "cccccccccc"; 
fcl.CTRY_CD_ID = "12"; 
fcl.CTRY_NM = "ddddddddd"; 
var fclts = new List<Facility>() { fcl }; 

var url = ConfigurationManager.AppSettings["FCMWebApi.Facility"].ToString(); 
var client = new RestClient(url); 
var request = new RestRequest("api/facility/fulladdress",Method.GET);   
request.RequestFormat = DataFormat.Json; 
request.AddJsonBody(fclts);   
var response = client.Execute<Facility>(request); 

Но она всегда проходит нуль на WEB стороне API .. WEB API Code

public IEnumerable<FCM.Models.Facility> GetFullAddress(IEnumerable<FCM.Models.Facility> fclt) 
{ 
} 

Можете ли вы предложить что-нибудь?

+2

Method.Post поможет. Вы добавляете данные в тело. –

+0

Вы проверили мой ответ? Я что-то пропустил? –

+0

@Rupali - Вы должны принять ответ, если это поможет. –

ответ

0

Изменить это var request = new RestRequest("api/facility/fulladdress",Method.GET); к этому var request = new RestRequest("api/facility",Method.POST);

На стороне сервера вам необходимо переименовать метод изменения имени, т.е., как показано ниже

public IEnumerable<FCM.Models.Facility> PostFullAddress(IEnumerable<FCM.Models.Facility> fclt) 
{ 
} 
+0

Большое вам спасибо за ваши ответы, сменив имя метода на POST, помогли мне – Rupali

+0

Отлично. Пожалуйста, примите это как ответ, если он решит вашу проблему. –

0

Другой способ сделать это состоит в пост в строку и преобразовать он (я конвертирую 'в `, поэтому я могу использовать Get также).

public string Post(string getParams) 
{ 
    getParams = getParams.Replace("`", "\""); 
    GetParams getParams2 = JsonConvert.DeserializeObject<GetParams>(getParams); 

А на стороне клиента:

  // "Post" method. 
      using (var client = new HttpClient(new HttpClientHandler() 
      { 
       UseDefaultCredentials = true 
      })) 
      { 
       string url = StaticVars.WebAPIURL + "WebAPIRequest/"; 
       var content = new FormUrlEncodedContent(new[] 
       { 
        new KeyValuePair<string, string>("getParams", getParams), 
        }); 
       HttpResponseMessage responseMessage = new HttpResponseMessage(); 
       Task task = Task.Run(async() => 
       { 
        responseMessage = await client.PostAsync(url, content); 
        var contents = await responseMessage.Content.ReadAsStringAsync(); 
        response = contents.ToString(); 
        if (response != "Failed") 
        { 
         importedFiles = JsonConvert.DeserializeObject<List<ImportedFile>>(response); 
        } 

       }); 
       task.Wait();