0
处理每个控制器的web api端点的首选方式是什么?例如,我的MVC控制器将调用不同的端点。 这些是目前唯一的,但它可以改变。从mvc控制器调用远程web api
此外,我将在本地进行开发并部署到开发服务器。
http://localhost:42769/api/categories/1/products
http://localhost:42769/api/products/
public class ProductsController : Controller
{
HttpClient client;
string url = "http://localhost:42769/api/categories/1/products"; //api/categories/{categoryId}/products
public ProductsController()
{
client = new HttpClient();
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
// GET: Products
public async Task<ActionResult> ProductsByCategory()
{
HttpResponseMessage responseMessage = await client.GetAsync(url);
if (responseMessage.IsSuccessStatusCode)
{
var responseData = responseMessage.Content.ReadAsStringAsync().Result;
var products = JsonConvert.DeserializeObject<List<GetProductsByCategoryID>>(responseData);
return PartialView(products);
}
return View("Error");
}
}
一个老式的方法是使用WCF http://stackoverflow.com/questions/13200381/asp-net-mvc-4-application-calling-远程的WebAPI/13207679#13207679 – peco