我正在尝试从控制器获取数据 像这样的东西:
public IEnumerable<Custom> Search(string searchText = "")
{
return new[] { new Custom { Name = "a", Id = 1 }, new Custom { Name = "b", Id = 1 }, new Custom { Name = "c", Id = 3 } };
}
但是角度给了我这个
米 ü 小号 一世 C p Ø [R Ť 一个 升 。 C Ø ñ Ť [R Ø 升 升 Ë [R 小号 。 C ü 小号 Ť Ø 米 [ ]
我尝试添加http.headers但没有。 我的代码:
var musicportal = angular.module('musicportal', []);
musicportal.controller('SearchController', ['$scope', '$http', function ($scope, $http) {
$scope.answer = "awesome";
$scope.search = function (text) {
$scope.answer = text;
$scope.pms = [];
$http.post('/Home/Search', { searchText: text }).
success(function (data, status, headers, config) {
$scope.pms = data;
});
$scope.searchText = "";
}
}]);
答案 0 :(得分:0)
您应该将数据作为json
返回,例如
public ActionResult Search(string searchText = "")
{
return Json(new { Foo = "Hello" }, JsonRequestBehavior.AllowGet);
}
$http.post('/Home/Search', { searchText: text }).
success(function (data, status, headers, config) {
$scope.pms = data.Foo;
});
现在,在您的情况下,您有一个列表,因此您需要将其转换为JSON。您可以使用JsonSerializer
例如
public ActionResult Search(string searchText = "")
{
string json = "";
var items = new[] { new Custom { Name = "a", Id = 1 }, new Custom { Name = "b", Id = 1 }, new Custom { Name = "c", Id = 3 } };
using (var writer = new StringWriter())
using (var jsonWriter = new JsonTextWriter(writer))
{
serializer.Serialize(jsonWriter, items);
json = writer.ToString();
}
return Json(json, JsonRequestBehavior.AllowGet);
}
$http.post('/Home/Search', { searchText: text }).
success(function (data, status, headers, config) {
$scope.pms = JSON.Parse(data);
});
你可能需要玩这个代码,它不是第一次完美,但希望它会给你一个良好的开端。