Как я могу вызвать метод WebApi из метода действия контроллера MVC?
Как я могу вызвать метод Web API из метода контроллера действий MVC. Это то, что я пытаюсь, это мой метод контроллера:
public ActionResult ProductDetail(long id)
{
using (var client = new HttpClient())
{
var productDetailUrl = Url.RouteUrl(
"DefaultApi",
new { httproute = "", controller = "ProductDetails", id = id },
Request.Url.Scheme
);
var model = client
.GetAsync(productDetailUrl)
.Result
.Content.ReadAsAsync().Result;
return View(model);
}
}
Мой метод веб-API:
private ProductEntities products = new ProductEntities();
public IEnumerable GetProductDetail(int ID)
{
var produc= products.ExecuteStoreQuery(
"GetProductDetail @ProductID ",
new SqlParameter("@ProductID", ID));
return produc;
}
Когда я делаю это, я получаю модель error @ var в моем методе действия MVC после возвращения данных, говорящих "
Newtonsoft.Json.JsonSerializationException: Невозможно десериализовать массив JSON "(то есть [1,2,3]) в тип 'ProductDetails.Models.ProductItems', Десериализованный тип должен быть массивом или реализовывать интерфейс коллекции, такой как IEnumerable, ICollection или IList. Чтобы принудительно десериализовать массивы JSON, добавьте атрибут JsonArrayAttribute к типу. Строка 1, позиция 1. "
Может ли кто-нибудь помочь мне сделать это ... или предложить мне какой-либо другой лучший способ, или исправить меня, если я делаю что-то не так в любом месте ... Я должен показать возвращенные данные в моем представлении ... данные должны быть возвращены в мой контроллер