ASP.NET MVC从Web API调用在帮助控制器中创建列表

问题描述:

我正在尝试创建一个帮助控制器,它将基本上向Web API发出一个GET请求,以创建一个最终将用于返回JSON数据的列表。我在网上找到了一个例子,几乎可以做我想做的事,除了数据是在控制器内硬编码的。ASP.NET MVC从Web API调用在帮助控制器中创建列表

控制器(在C#):

public class StudentAPIController : Controller 
    { 
     // GET: api/GetAllStudents 
     [HttpGet] 
     public IEnumerable<PersonalDetail> GetAllStudents() 
     { 
      List<PersonalDetail> students = new List<PersonalDetail> 
      { 
      string uri = "URL_OF_API_CALL"; 

      new PersonalDetail{ 
    // Here is where I want to make the API call to fetch the data instead of this hard-coded data 
           RegNo = "2017-0001", 
           Name = "Nishan", 
           Address = "Kathmandu", 
           PhoneNo = "9849845061", 
           AdmissionDate = DateTime.Now 
           }, 
      new PersonalDetail{ 
           RegNo = "2017-0002", 
           Name = "Namrata Rai", 
           Address = "Bhaktapur", 
           PhoneNo = "9849845062", 
           AdmissionDate = DateTime.Now 
          },     
      }; 
      return students; 
     } 
    } 

任何帮助,不胜感激!

首先添加此库:

System.Net.Http 

然后你就可以使用这些代码行来调用另一个Web API放在你的助手控制器:

HttpClient client = new HttpClient(); 
client.BaseAddress = @"http://[YourBaseUri]/"; 
client.DefaultRequestHeaders.Accept.Clear(); 
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
var request = client.GetAsync("[YourActionName]"); 
return request.Result.Content.ReadAsStringAsync().Result; 
+1

此代码为我工作,谢谢! –

+0

你的欢迎杰夫 –