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);
}
}
私の 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;
}
var model
これを行っているときに、データを返した後、MVC アクション メソッドで@ エラーが発生します。
"
Newtonsoft.Json.JsonSerializationException
: JSON 配列 "(すなわち[1,2,3]
) をタイプ 'ProductDetails.Models.ProductItems
' にデシリアライズできません。逆シリアル化された型は、配列であるかIEnumerable
、ICollection
またはのようなコレクション インターフェイスを実装する必要がありますIList
。JSON 配列を強制的に逆シリアル化するにはJsonArrayAttribute
、型に を追加します。行 1、位置 1。」
誰かがこれを行うのを手伝ったり、別のより良い方法を提案したり、どこかで間違っている場合は修正したりできますか? 返されたデータをビューに表示する必要があります。データはコントローラーに返される必要があります。