javascript - $http.get 请求成功时获取字符串而不是 json (Angular JS)

标签 javascript json ajax angularjs http

Controller 返回数据,但我无法在 HTML 文件中迭代它。但是,使用表达式 {{phones}} 会直接显示返回的数据。我相信数据是以字符串而不是 json 的形式返回的。我期待与循环中返回的所有数据相对应的名称和片段。

<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>

Angular js 脚本

var phonecatApp = angular.module('phonecatApp', []);
phonecatApp.controller('PhoneListCtrl', function ($scope, $http) {
    $http.get('Home/GetJson').success(function (data){        
        $scope.phones = data;
    });
});

Controller 操作方法

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,因为它会在幕后再次序列化对象。您可以使用方法 Content 来代替:

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);                
}

关于javascript - $http.get 请求成功时获取字符串而不是 json (Angular JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32676437/

相关文章:

javascript - 使用 iFrame 时的 IE11 安全证书问题

javascript - 在 Meteor JS 中自定义加载 js 文件的顺序

json - jq - 计算匹配选择的项目数

javascript - 使用 JSON 填充 HTML 元素

javascript - AJAX表单提交问题

javascript - 带有 ASP.NET MVC 操作的 jQuery Ajax : Passing arguments from JavaScript in POST

javascript - 从一个 .js 文件引用另一个 .js 文件

c# - HttpClient.SendAsync 不发送请求正文

javascript - 使用 highcharts 绘制 CSV 中的不规则时间数据

Javascript 命名函数定义在不应该执行的时候执行