MVC4 - 在视图中显示 JSON 结果属性
Posted
技术标签:
【中文标题】MVC4 - 在视图中显示 JSON 结果属性【英文标题】:MVC4 - Displaying JSON result properties in view 【发布时间】:2013-11-12 12:27:46 【问题描述】:首先,我是 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;
【问题讨论】:
将您的喜欢存储在您的操作(索引)中的ViewData["likes"] = likes;
中,并在您的索引视图中调用它以显示它。 @ViewData["likes"] likes
。 Carles 解决方案也可以正常工作。
【参考方案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 语法。
【讨论】:
谢谢!在 Google 上真的找不到任何东西。【参考方案2】:你不见了
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);
【讨论】:
感谢您的回复 codebarin,Carles 的回答对我有用。但是,您的回答是行业标准做法吗?我对 MVC 很陌生。我应该坚持什么是可行的,还是为项目设置更容易和未来的发展? 当您对某些技术不熟悉时,通常会坚持简单的方法,但我建议您快速学习并遵循不会破坏您的开发架构的标准。【参考方案3】:我一直在寻找类似的解决方案,但发现它有点不同:
[HttpGet]
public JsonResult Index()
// your code
return Json("some result string or value", JsonRequestBehavior.AllowGet);
当您直接调用此操作时,这会在您的浏览器中输出"some result string or value"
。
假设这是 controller 内的正常 action 继承自
Controller
类。
【讨论】:
以上是关于MVC4 - 在视图中显示 JSON 结果属性的主要内容,如果未能解决你的问题,请参考以下文章