【发布时间】:2018-07-01 22:04:25
【问题描述】:
我正在处理一个在服务器端使用 ASP Core 2,在客户端使用 Angular 5 的项目,当我使用 POSTMAN 发送 http.get 请求时,所有数据都已加载。
问题是当我使用 angular 5 发送相同的请求时,并非所有数据都已加载(检查,recRes)
这是我使用 ASP Core 2 的服务器代码
// GET: api/Reclamations/5
[HttpGet("byClient/{id}"), Authorize]
public async Task< ActionResult > Get(int id)
{
try
{
var ResRecs = await _context.Reclamations
.Where(r => r.IdClient == id)
.Include(n => n.IdClientNavigation)
.Select(x => new
{
observations = x.Observations,
rdv = x.Rdv,
explications = x.Explication,
idRec = x.Id,
pattern = x.Pattern
})
.OrderBy(t => t.rdv)
.ToListAsync();
var checkBoxes = new List<String>();
foreach(var item in ResRecs)
{
if (item.pattern.Contains("DOTDelanteroIzquierdo")) checkBoxes.Add("DOTDelanteroIzquierdo"+item.idRec);
if (item.pattern.Contains("DOTDelanteroDerecho")) checkBoxes.Add("DOTDelanteroDerecho" + item.idRec);
if (item.pattern.Contains("DOTTraseroIzquierdo")) checkBoxes.Add("DOTTraseroIzquierdo" + item.idRec);
if (item.pattern.Contains("DOTTraseroDerecho")) checkBoxes.Add("DOTTraseroDerecho" + item.idRec);
}
var ResClient = await _context.Clients
.Where(r => r.Id == id)
.Select(x => new
{
idClient = x.Id,
nameClient = x.FullName,
addressClient = x.Address,
postalCodeClient = x.PostalCode,
cityClient = x.City,
telClient = x.Tel,
emailClient = x.Email
}).SingleAsync();
return Content(Newtonsoft.Json.JsonConvert.SerializeObject(new {ResClient, ResRec = ResRecs, Check = checkBoxes , success = true, message = "The Reclamation loaded" }), "application/json");
}
catch (Exception ex)
{
Console.WriteLine("Error : " + ex);
}
return Content(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, message = "The Reclamation is not loaded" }), "application/json");
}
这是我的 Angular 5 呼叫服务
import { Injectable } from '@angular/core';
import { AppconfigService } from '../appconfig.service';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class ReclamationsService {
constructor(private http: HttpClient) { }
UrlRecs: string = AppconfigService.settings.server.url + "api/Reclamations/";
getRec(idClient){
return this.http.get(this.UrlRecs + "byClient/" + idClient);
}
}
这是我对服务的组件调用
this.reclamationSvc.getRec(this.idClient).subscribe(
(response: Response) => {
console.log('Before', response);
if (response["success"] == true) {
this.ResRecs = response["ResRec"];
this.checkBoxs = response["Check"];
this.c = response["ResClient"];
}
else {
alert("Error");
}
},
(error) => {
}
)
我已经尝试了 5 天了,我的代码可能有什么问题?
【问题讨论】:
-
您在控制台上的日志中得到了什么,以及在您从客户端调用服务时是否还要检查网络请求错误代码。在这里也分享同样的内容
-
尝试添加
map这样return this.http.get(this.UrlRecs + "byClient/" + idClient).map((res: Response) => res.json() || {});
标签: angular entity-framework angular5 asp.net-core-2.0