本文介绍了无法将对象列表传递给Web API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在MVC应用程序中使用以下代码
I am using below code in MVC application
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端传递null..WEB API代码
But it is always passing null at WEB API side.. WEB API Code
public IEnumerable<FCM.Models.Facility> GetFullAddress(IEnumerable<FCM.Models.Facility> fclt) { }你能建议点什么吗?
推荐答案另一种方法是发布字符串并将其转换(我将'转换为`,因此也可以使用Get).
Another way to do it is to post in a string and convert it (I convert ' to ` so I can use Get as well).
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();更多推荐
无法将对象列表传递给Web API
发布评论