Calling Web API from MVC controller

前端 未结 5 1271
余生分开走
余生分开走 2021-02-01 03:37

I have a WebAPI Controller within my MVC5 project solution. The WebAPI has a method which returns all files in a specific folder as a Json list:

[{\"name\":\"file

5条回答
  •  滥情空心
    2021-02-01 04:26

    Controller:

        public JsonResult GetProductsData()
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:5136/api/");
                //HTTP GET
                var responseTask = client.GetAsync("product");
                responseTask.Wait();
    
                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync>();
                    readTask.Wait();
    
                    var alldata = readTask.Result;
    
                    var rsproduct = from x in alldata
                                 select new[]
                                 {
                                 Convert.ToString(x.pid),
                                 Convert.ToString(x.pname),
                                 Convert.ToString(x.pprice),
                          };
    
                    return Json(new
                    {
                        aaData = rsproduct
                    },
        JsonRequestBehavior.AllowGet);
    
    
                }
                else //web api sent error response 
                {
                    //log response status here..
    
                   var pro = Enumerable.Empty();
    
    
                    return Json(new
                    {
                        aaData = pro
                    },
        JsonRequestBehavior.AllowGet);
    
    
                }
            }
        }
    
        public JsonResult InupProduct(string id,string pname, string pprice)
        {
            try
            {
    
                product obj = new product
                {
                    pid = Convert.ToInt32(id),
                    pname = pname,
                    pprice = Convert.ToDecimal(pprice)
                };
    
    
    
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:5136/api/product");
    
    
                    if(id=="0")
                    {
                        //insert........
                        //HTTP POST
                        var postTask = client.PostAsJsonAsync("product", obj);
                        postTask.Wait();
    
                        var result = postTask.Result;
    
                        if (result.IsSuccessStatusCode)
                        {
                            return Json(1, JsonRequestBehavior.AllowGet);
                        }
                        else
                        {
                            return Json(0, JsonRequestBehavior.AllowGet);
                        }
                    }
                    else
                    {
                        //update........
                        //HTTP POST
                        var postTask = client.PutAsJsonAsync("product", obj);
                        postTask.Wait();
                        var result = postTask.Result;
                        if (result.IsSuccessStatusCode)
                        {
                            return Json(1, JsonRequestBehavior.AllowGet);
                        }
                        else
                        {
                            return Json(0, JsonRequestBehavior.AllowGet);
                        }
    
                    }
    
    
    
    
                }
    
    
                /*context.InUPProduct(Convert.ToInt32(id),pname,Convert.ToDecimal(pprice));
    
                return Json(1, JsonRequestBehavior.AllowGet);*/
            }
            catch (Exception ex)
            {
                return Json(0, JsonRequestBehavior.AllowGet);
            }
    
        }
    
        public JsonResult deleteRecord(int ID)
        {
            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:5136/api/product");
    
                    //HTTP DELETE
                    var deleteTask = client.DeleteAsync("product/" + ID);
                    deleteTask.Wait();
    
                    var result = deleteTask.Result;
                    if (result.IsSuccessStatusCode)
                    {
    
                        return Json(1, JsonRequestBehavior.AllowGet);
                    }
                    else
                    {
                        return Json(0, JsonRequestBehavior.AllowGet);
                    }
                }
    
    
    
               /* var data = context.products.Where(x => x.pid == ID).FirstOrDefault();
                context.products.Remove(data);
                context.SaveChanges();
                return Json(1, JsonRequestBehavior.AllowGet);*/
            }
            catch (Exception ex)
            {
                return Json(0, JsonRequestBehavior.AllowGet);
            }
        }
    

提交回复
热议问题