HttpPost生成结果但不发送回角度控制器

时间:2015-11-22 00:35:51

标签: json angularjs asp.net-mvc-4

我一直在与这个问题作斗争几个小时,并尝试了几种解决方案(包括使用数据集,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?=  

0 个答案:

没有答案