Javascript $http.get请求在成功时获取字符串而不是json(Angular JS)
控制器返回数据,但是我不能在HTML文件中对其进行迭代。但是,使用表达式{{phones}}直接显示返回的数据。我相信数据是作为字符串而不是json返回的。我期待与循环中返回的所有数据对应的名称和代码段Javascript $http.get请求在成功时获取字符串而不是json(Angular JS),javascript,json,ajax,angularjs,http,Javascript,Json,Ajax,Angularjs,Http,控制器返回数据,但是我不能在HTML文件中对其进行迭代。但是,使用表达式{{phones}}直接显示返回的数据。我相信数据是作为字符串而不是json返回的。我期待与循环中返回的所有数据对应的名称和代码段 <body ng-app="phonecatApp" ng-controller="PhoneListCtrl" > Search: <input ng-model="query"> Sort By: <select ng-model="or
<body ng-app="phonecatApp" ng-controller="PhoneListCtrl" >
Search: <input ng-model="query">
Sort By:
<select ng-model="orderByFilter">
<option value="name">Alphabetical</option>
<option value="age">Numerical</option>
</select>
<ul>
<li ng-repeat="phone in phones | orderBy:orderByFilter">
<span>{{phone.name}}</span>
<span>{{phone.snippet}}</span>
</li>
</ul>
<script src="~/Scripts/AngularScript.js"></script>
</body>
控制器动作法
public JsonResult GetJson()
{
string variablename = "[{'name': 'Nexus S','snippet': 'Fast just got faster with Nexus S.', 'age': 1}]";
return Json (variablename, JsonRequestBehavior.AllowGet);
}
因为您已经有了JSON格式的数据,所以不需要使用方法
JSON
,因为它会在封面下再次序列化对象。您可以使用方法内容:
public ActionResult GetJson()
{
string variablename = "[{'name': 'Nexus S','snippet': 'Fast just got faster with Nexus S.', 'age': 1}]";
return Content(variablename);
}
或者,不提供硬编码数据,您可以创建一个对象,并允许方法Json
序列化该对象:
public ActionResult GetJson()
{
var resultObject = new object [] {
new {
name="Nexus S",
snippet= "Fast just got faster with Nexus S.",
age= 1
}
};
return Json (resultObject, JsonRequestBehavior.AllowGet);
}
您还可以在客户端修复此问题。只需解析响应,然后将其设置为phones
$scope.phones = JSON.parse(data);
问题可能是您将内容作为字符串传递,因为它已经序列化为JSON而不是对象
您可以通过以下方式返回该内容:
public ActionResult GetJson()
{
string variablename = "[{'name': 'Nexus S','snippet': 'Fast just got faster with Nexus S.', 'age': 1}]";
return Content (variablename, "application/json");
}
但是,最好的选择是传递一个对象,并让Json()
将其序列化为该答案中所示的@dotnetom
public ActionResult GetJson()
{
string variablename = "[{'name': 'Nexus S','snippet': 'Fast just got faster with Nexus S.', 'age': 1}]";
return Content (variablename, "application/json");
}