大家好,
我需要使用Viewbag将列表返回到客户端并返回视图
让我们看一下代码:
服务器端:
var model = _iSiteService.FindProduct(id);
var UnitsData = _iSiteService.GetAllProductsUnits(id).Where(x => x.Product.IsActive).Select(i => new
{
i.Id,
i.UnitId,
i.ConversionFactor,
i.ProductId
}).ToArray();
ViewBag.dataUnitsXX = Json(new
{
Data = UnitsData.ToArray()
}, JsonRequestBehavior.AllowGet);
return View(model);
客户端:
var json = @Html.Raw(ViewBag.dataUnitsXX);
消息错误:
var json = System.Collections.Generic.List`1[<>f__AnonymousType2`4[System.Int32,System.Int32,System.Decimal,System.Int32]];
我如何解决。
请帮助我以javascript中的变量返回数据 谢谢你。
答案 0 :(得分:2)
您可以通过将UnitsData列表添加到ViewBag中来实现:
ViewBag.dataUnitsXX = UnitsData;
,然后在客户端使用
var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.dataUnitsXX));
请注意,您尝试序列化数据的方式是多种概念的组合。您在此处使用的Json旨在返回json类型的操作结果。相反,您将返回模型,但会将操作结果添加到ViewBag。您可能会了解有关操作结果类型here的更多信息。