C# 关于如何将API数据中的项放入列表以将其显示到视图中的问题

C# 关于如何将API数据中的项放入列表以将其显示到视图中的问题,c#,asp.net-mvc,C#,Asp.net Mvc,我正在学习将API与RecipeSupply API结合使用,并尝试将结果显示到网页上。我无法将单个结果放入列表中以显示它们 这在控制器中,工作正常: public string GetData() { HttpWebRequest request = WebRequest.CreateHttp("http://www.recipepuppy.com/api/?i=onions,garlic&q=omelet&p=3");

我正在学习将API与RecipeSupply API结合使用,并尝试将结果显示到网页上。我无法将单个结果放入列表中以显示它们

这在控制器中,工作正常:

public string GetData()
        {
            HttpWebRequest request = WebRequest.CreateHttp("http://www.recipepuppy.com/api/?i=onions,garlic&q=omelet&p=3");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader rd = new StreamReader(response.GetResponseStream());
            string ApiText = rd.ReadToEnd();

            return ApiText;
        }
这就是我认为我有问题的地方。也在控制器中。我只是不确定我是否正确理解了整件事。配方是我创建的一个模型 用于存储对象

   public List<Recipe> ConvertAPItoRecipes(string APIText)
        {
            JToken t = JToken.Parse(APIText);
            Recipe r = new Recipe();
            List<JToken> recipes = t["title"].ToList();
            //r.Title = t["title"].ToString();
            List<Recipe> r2 = new List<Recipe>();

            foreach(JToken x in recipes)
            {
                Recipe re = new Recipe();
                re.Title = x["title"].ToString();
                string temp = x["ingredients"].ToString();
                List<string> temp2 = temp.Split(',').ToList();
                re.Ingredients = temp2;
                r2.Add(re);
            }

            return r2;
        }
公共列表转换器apitorecipes(字符串APIText)
{
JToken t=JToken.Parse(APIText);
配方r=新配方();
列出食谱=t[“title”].ToList();
//r、 Title=t[“Title”].ToString();
列表r2=新列表();
foreach(配方中的JToken x)
{
配方re=新配方();
re.Title=x[“Title”].ToString();
字符串temp=x[“配料”].ToString();
List temp2=temp.Split(',').ToList();
re.成分=temp2;
r2.加入(re);
}
返回r2;
}
以下是控制器中的操作。我添加了一个对象只是为了查看列表是否正确显示

public IActionResult Index()
        {
            List<Recipe> recipes = ConvertAPItoRecipes(GetData());
            Recipe r = new Recipe();

            r.Title = "Steamed Hams";
            recipes.Add(r);
            ViewBag.num = recipes.Count();
            return View(recipes);
        }


public IActionResult Index()
{
List recipes=ConvertAPItoRecipes(GetData());
配方r=新配方();
r、 Title=“蒸火腿”;
配方。添加(r);
ViewBag.num=recipes.Count();
返回视图(配方);
}
这里是风景。我添加了viewbag.num来列出列表中的项目数,只是为了确认它是空的(我自己添加的'steam hams'对象显示为1)

@model List<Recipe>

@ViewBag.num
@foreach (var item in Model)
{
<div>
    @Html.DisplayFor(modelItem => item.Title) 
</div>
}
@型号列表
@ViewBag.num
@foreach(模型中的var项目)
{
@DisplayFor(modeleItem=>item.Title)
}
我希望包含洋葱和大蒜的食谱列表会显示在索引上。看起来列表会显示出来,但它是空的,如何填充它让我感到困惑


非常感谢您提供的任何帮助!

您确定这一行代码中确实有结果吗

List<JToken> recipes = t["title"].ToList();
List recipes=t[“title”].ToList();
如果将其更改为:

List<JToken> recipes = t["results"].ToList();
List recipes=t[“results”].ToList();

我觉得应该可以使用。再添加一些手动回复,然后在循环中添加一些静态文本。你看到静态文本回复了吗。计数次数?