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;
此代码为我工作,谢谢! –
你的欢迎杰夫 –