想知道从API(JSON格式)中提取数据的最佳方法是什么。我的控制器中有代码,调用一个API返回数据。
我想要将数据传输到我的视图上,以便在页面上显示它。我看到了使用jQuery / AJAX进行文档记录的方式,但我不想让API网址公开。
我考虑传递从返回数据创建的对象。但老实说,我不知道该怎么做!
下面的代码为每个用户的产品带回数据。这很好地发挥作用。
public static List<productDetails> GetUserProducts(string userid)
{
//api/product/user/<Guid>
var url = baseUrl + "/product/user/" + userid;
var syncClient = new WebClient();
var content = syncClient.DownloadString(url);
List<productDetails> Products = (List<productDetails>)Newtonsoft.Json.JsonConvert.DeserializeObject(content, typeof(List<productDetails>));
return Products;
}
目前我正在使用 ViewBag 将返回的数据传递到页面上。如果有多个产品,这种方法并不好用。我是在视图的 ActionResult 中进行传递。
var p = GetUserProducts(userGuid);
foreach(var product in p)
{
ViewBag.pId = product.Id;
ViewBag.pName = product.FriendlyName;
ViewBag.pSerial = product.SerialNumber;
ViewBag.pbatt = product.Location.BatteryCharge + "%";
ViewBag.devicehistory = "~/Location/History/" + product.Id;
}
任何想法/例子都将不胜感激。