相关疑难解决方法(0)

如何从MVC Controller Action Method调用WebApi方法?

如何从MVC动作控制器方法调用Web API方法.这是我正在尝试的,这是我的控制器方法:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的Web API方法:

private ProductEntities products = new ProductEntities();

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

   return produc;
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我在返回数据后,在我的MVC操作方法中收到错误@ var model

"Newtonsoft.Json.JsonSerializationException:无法将JSON数组反序列化"(即[1,2,3])为"ProductDetails.Models.ProductItems"类型.反序列化类型必须是数组或实现集合接口,如IEnumerable,ICollection或IList.要强制JSON数组反序列化,请将JsonArrayAttribute添加到该类型.第1行,第1位."

任何人都可以帮我这样做...或者建议我任何其他最好的方法或纠正我,如果我在任何地方做错了...我必须在我的视图中显示返回的数据...数据应该返回给我调节器

json json.net asp.net-mvc-4 asp.net-web-api

24
推荐指数
2
解决办法
6万
查看次数

标签 统计

asp.net-mvc-4 ×1

asp.net-web-api ×1

json ×1

json.net ×1