我一直在与这个问题作斗争几个小时,并尝试了几种解决方案(包括使用数据集,datareader访问数据,将datareader / dataset转换为对象列表,然后将结果作为Json发送我也尝试过使用Json.Net并用AJAX调用替换$http
,但都无济于事。
在MVC4项目中,我详细介绍了一个角度控制器,用于从ACCESS数据库中检索数据。 $http
请求被发送到(本地)服务器,接收并执行。然而,生成的结果不会被角度控制器接收。
非常感谢任何和所有帮助
这是方法:
[HttpPost]
public JsonResult GetCatalogueItems(string get)
{
JsonResult toReturn = null;
string cs = ConfigurationManager.ConnectionStrings["connStringPT"].ConnectionString;
OleDbConnection cn = new OleDbConnection(cs);
string queryStart = " SELECT catNum, testName, price, comments FROM table_catalog WHERE ";
DataSet ds = new DataSet();
try
{
List<ptProductModel> listToReturn = new List<ptProductModel>();
string query = queryStart + get + "=true;";
cn.Open();
OleDbCommand cmd = new OleDbCommand(query, cn);
OleDbDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
ptProductModel item = new ptProductModel
{
Number = reader[0].ToString(),
Name = reader[1].ToString(),
//comment = reader.GetString(reader.GetOrdinal("comments")) !=null ? reader.GetString(reader.GetOrdinal("comments")) : null,
price = reader[2].ToString()
};
listToReturn.Add(item);
}
reader.Close();
if (cn.State == ConnectionState.Open)
{
cn.Close();
}
toReturn = Json(listToReturn.Select(s => new { Name = s.Name, price = s.price, Number = s.Number }), JsonRequestBehavior.AllowGet);
}
}
catch (OleDbException ex)
{
toReturn = Json("Error", JsonRequestBehavior.AllowGet);
}
return toReturn;
}
}
这是角度控制器:
myApp.controller('ptCatalogueController', ['$scope', '$http', function ($scope, $http) {
$scope.catalogueItems = [];
$scope.Product = "";
$scope.Init = function () { }
$scope.GetProducts = function (productSet) {
console.error(productSet, 'blabla');
$http.post({
url: '/Catalogue/GetCatalogueItems', data: { get: productSet }
}).then(
// success callback
function (data) {
$scope.catalogueItems = data;
console.log($scope.catalogueItems);
console.debug("success");
}
,
//error callback
function (response) {
console.log(response);
console.debug("error");
}
)}
}]);
和标题:
POST /Catalogue/[object%20Object] HTTP/1.1
Host: localhost:49078
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8,he;q=0.6
Cookie: ASP.NET_SessionId=fvfswezab5g1ekyiuotmpw3m
Origin: http://localhost:49078
Referer: http://localhost:49078/Catalogue/Index
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id: 0689EBCB-E24D-48E3-ACF9-0D94BB0B6F16
HTTP/1.1 404 Not Found
Cache-Control: private
Content-Length: 3732
Content-Type: text/html; charset=utf-8
Date: Sun, 22 Nov 2015 07:59:03 GMT
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-SourceFiles: =?UTF-8?B? RTpcR2VuZXJhbCBGb2xkZXJcRGV2ZWxvcG1lbnRcV2ViLVBzeWNoVGVjaC1OZXdTaXRlXFdlYi1Qc3ljaFRlY2gtTmV3U2l0ZVxDYXRhbG9ndWVcW29iamVjdCBPYmplY3Rd?=