gpt4 book ai didi

ASP.NET MVC 将 JSON 从 Controller 传递给 View

转载 作者:行者123 更新时间:2023-12-04 14:58:40 25 4
gpt4 key购买 nike

想知道从 API(以 JSON 格式)提取数据的最佳方法是什么。我的 Controller 中有代码,它调用返回数据的 API。

我想把数据放到我的 View 上,这样我就可以在页面上显示它。我已经通过使用 jQuery/AJAX 看到了记录最多的方式,但我真的不希望 API url 公开。

我正在考虑传递从返回的数据创建的对象。但老实说,我不知道该怎么做!

以下代码带回每个用户的产品数据。这工作正常。

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 将返回的数据传递到页面。如果产品不止一种,这将无法正常工作。我在 View 的 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;
}

任何想法/例子将不胜感激。

最佳答案

希望这可以让您对它的实际工作方式有所了解

返回作为 actionresult 查看的一些示例

Controller

public ActionResult something(string userGuid)
{
var p = GetUserProducts(userGuid);
return view(p); //you can return as partial view (return PartialView("your partial view name", p));
}

查看
@model IEnumerable<productDetails>


foreach (var item in Model)
{
@Html.DisplayFor(model => item.Id)
//and so on
}

结果

返回为 json 的一些示例以查看

Controller
   [httpPost]
public JsonResult something(string userGuid)
{
var p = GetUserProducts(userGuid);
return Json(p, JsonRequestBehavior.AllowGet);
}

用ajax调用
$.post( "../something", {userGuid: "foo"}, function( data ) {
console.log(data)
});

关于ASP.NET MVC 将 JSON 从 Controller 传递给 View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23604504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com