【发布时间】:2017-02-09 22:15:10
【问题描述】:
我在 angularjs 中有一个 GET 方法,它从 C# 中的 API 控制器接收数据。控制器正在返回数据,$http get 方法正在接收响应,但响应内容体为空。
我的 HttpGet API 控制器函数:
[HttpGet]
[Route("api/LandingPage/GetByDate")]
public HttpResponseMessage GetByDate(DateTime startDate, DateTime endDate)
{
try
{
var startDateParam = new SqlParameter("@startDate", startDate);
var endDateParam = new SqlParameter("@endDate", endDate);
var confirmData = m_databaseObject.Database.SqlQuery<PageModel>("[dbo].[GetPageData] @startDate,@endDate", startDateParam, endDateParam).ToList();
return Request.CreateResponse(HttpStatusCode.OK, confirmData);
}
catch (Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, $"Error occured {e.Message} {startDate:yyyy-MM-dd} {endDate:yyyy-MM-dd}");
}
}
我要返回的对象:
public class PageModel
{
string Name { get; set; }
int? FirstTotal { get; set; }
int? FisrtInitial { get; set; }
int? FisrtApproval { get; set; }
int? SecondTotal { get; set; }
int? SecondInitial { get; set; }
int? SecondApproval { get; set; }
int? Validated { get; set; }
int? NotSettled { get; set; }
}
GET 方法:
this.getLandingPage = function ($scope) {
$scope.error = "";
$scope.message = "";
return $http({
method: "GET",
url: apiName + "LandingPage/GetByDate?startDate=" + $scope.StartDate + "&endDate=" + $scope.EndDate,
headers: { 'Content-Type': 'application/json' }
}).success(function (data) {
if (data.length === 0)
$scope.message = "No Data found";
else {
$scope.LandingPageData = data;
}
}).error(function (error) {
$scope.LandingPageData = null;
if (error)
$scope.error = error.Message;
else
$scope.error = "Data services may not be running, Please check!";
})
}
我的控制器中的confirmData 变量在函数返回时包含数据。我的 angularjs GET 方法返回成功,data.length 等于 1,但 data 中不包含任何值。
谁能解释为什么我的数据没有被正确传输?
【问题讨论】:
-
内部数据是什么?你试过
data.data吗? -
data包含一个大小为 1 的对象数组和一个空对象 -
你调试过你的控制器并确保confirmData确实有值吗?
-
是的。
PageModel对象包含控制器返回时的数据