¿Cómo puedo llamar a un método WebApi desde MVC Controller Action Method?

¿Cómo puedo llamar a un método de API web desde un método de controlador de acción MVC. Esto es lo que estoy tratando, este es mi método de controlador:

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<ProductItems>().Result;

        return View(model);
    }
}

Mi método de API web:

private ProductEntities products = new ProductEntities();

public IEnumerable<ProductItems> GetProductDetail(int ID)
{            
   var produc= products.ExecuteStoreQuery<ProductItems>(
            "GetProductDetail @ProductID ", 
            new SqlParameter("@ProductID", ID)); 

   return produc;
}

Cuando hago esto, aparece un modelo de error @ var en mi método de acción MVC después de devolver los datos que dicen

"Newtonsoft.Json.JsonSerializationException: No se puede deserializar la matriz JSON" (es decir, [1,2,3]) en el tipo 'ProductDetails.Models.ProductItems'. El tipo deserializado debe ser una matriz o implementar una interfaz de colección como IEnumerable, ICollection o IList. Para obligar a las matrices JSON a deserializar, agregue el atributo JsonArray al tipo. Línea 1, posición 1. "

¿Puede alguien ayudarme a hacer esto ... o sugerirme otro mejor método o corregirme si estoy haciendo algo mal en cualquier lugar ... Tengo que mostrar los datos devueltos en mi vista ... los datos deberían devolverse a mi controlador

Respuestas a la pregunta(2)

Su respuesta a la pregunta