Wie kann ich eine WebApi-Methode über die MVC Controller-Aktionsmethode aufrufen?

Wie kann ich eine Web-API-Methode von einer MVC-Aktionscontrollermethode aufrufen? Dies ist, was ich versuche, das ist meine Controller-Methode:

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);
    }
}

Meine Web-API-Methode:

private ProductEntities products = new ProductEntities();

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

   return produc;
}

Wenn ich das tue, erhalte ich ein error @ var-Modell in meiner MVC-Aktionsmethode, nachdem ich die Daten zurückgegeben habe, die sagen

"Newtonsoft.Json.JsonSerializationException: JSON-Array kann nicht deserialisiert werden" (d. H. [1,2,3]) in Typ "ProductDetails.Models.ProductItems". Der deserialisierte Typ muss ein Array sein oder eine Erfassungsschnittstelle wie IEnumerable, ICollection oder IList implementieren. Um die Deserialisierung von JSON-Arrays zu erzwingen, fügen Sie dem Typ das JsonArrayAttribute hinzu. Zeile 1, Position 1. "

Kann mir jemand dabei helfen ... oder mir eine andere beste Methode vorschlagen oder mich korrigieren, wenn ich etwas falsch mache ... Ich muss die zurückgegebenen Daten in meiner Ansicht anzeigen ... Die Daten sollten an meine zurückgegeben werden Regler

Antworten auf die Frage(2)

Ihre Antwort auf die Frage