0

首先,我是 MVC 的新手。

我想在 html 视图中显示 JSON 响应的属性。

例如,我想从 JSON 响应中获取页面喜欢的数量,并仅显示页面上的喜欢数量。

任何帮助深表感谢 :)

    //
    // GET: /Facebook/

    public ActionResult Index()
    {
        var json = new WebClient().DownloadString("https://graph.facebook.com/google");
        JsonConvert.DeserializeObject<RootObject>(json);

        return view();
    }

    public class CategoryList
    {
        public string id { get; set; }
        public string name { get; set; }
    }

    public class Location
    {
        public string street { get; set; }
        public string city { get; set; }
        public string state { get; set; }
        public string country { get; set; }
        public string zip { get; set; }
        public double latitude { get; set; }
        public double longitude { get; set; }
    }

    public class Cover
    {
        public string cover_id { get; set; }
        public string source { get; set; }
        public int offset_y { get; set; }
        public int offset_x { get; set; }
    }

    public class RootObject
    {
        public string about { get; set; }
        public string awards { get; set; }
        public string category { get; set; }
        public List<CategoryList> category_list { get; set; }
        public int checkins { get; set; }
        public string company_overview { get; set; }
        public string description { get; set; }
        public string founded { get; set; }
        public bool is_published { get; set; }
        public Location location { get; set; }
        public string mission { get; set; }
        public string phone { get; set; }
        public string products { get; set; }
        public int talking_about_count { get; set; }
        public string username { get; set; }
        public string website { get; set; }
        public int were_here_count { get; set; }
        public string id { get; set; }
        public string name { get; set; }
        public string link { get; set; }
        public int likes { get; set; }
        public Cover cover { get; set; }
    }
}
}
4

3 回答 3

1

您的操作应该将对象传递给视图:

public ActionResult Index()
{
    var json = new WebClient().DownloadString("https://graph.facebook.com/google");
    var root=JsonConvert.DeserializeObject<RootObject>(json);

    return view(root);
}

然后在您的视图中,您可以显示您想要的任何属性:

@Model RootObject
<html>
    <head>
        <title>Showing properties</title>
    </head>
    <body>
        @Model.likes likes.
    </body>
</html>

这是如果您使用 Razor 语法。

于 2013-11-12T12:47:38.437 回答
0

你不见了

return view(root);

您应该将对象传递回视图以使用它。

您可以在 mvc 4 中使用 JsonResult,

  public JsonResult ReturnSomeJson()
  {
   JsonResult result = new JsonResult();
   //Assign some json value to result.
   //Allow get is used to get the value in view.
   return view(result,AllowGet.True);
  }
于 2013-11-12T14:17:01.997 回答
0

我一直在寻找类似的解决方案,但发现它有点不同:

[HttpGet]
public JsonResult Index() {
    // your code
    return Json("some result string or value", JsonRequestBehavior.AllowGet);
}

"some result string or value"当您直接调用此操作时,它会在您的浏览器中输出。

假设这是从类继承的控制器内部的正常操作。Controller

于 2018-11-22T10:16:14.063 回答