我如何可以调用从MVC动作控制器方法的网页API方法。这就是我想,这是我的控制器方法:如何从MVC控制器操作方法调用WebApi方法?
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);
}
}
我的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;
}
当我这样做,我得到我的MVC操作方法错误@ VAR模型返回数据说
后 “Newtonsoft.Json.JsonSerializationException:不能反序列化JSON 阵列”(即[1,2,3])转换成类型 'ProductDetails.Models.ProductItems'。 反序列化类型必须是一个数组或实现的集合 接口等的IEnumerable,ICollection的或IList的。要强制JSON阵列 反序列化添加到JsonArrayAttribute的类型。 1号线, 位置1”
任何一个可以帮助我做这个...还是建议我任何其他最佳方法或纠正我,如果我做的任何地方错了......我已经展示返回在我看来,数据......数据应该返回到我的控制器
我会用ProductItem代替ProductItems的类/对象名称。并且使用“var”这个词阻碍了这些问题的解决,恕我直言。 – granadaCoder