В моем приложении я делаю запрос http.post и возвращаю значение 'gradeS'.Теперь я хотел использовать это значение gradeS в качестве параметра, чтобы сделать еще один каскадный вызов и получить некоторый список имен.Я выложу код, который я написал до сих пор -
1. my first call [originally]
this.http.post('api/SampleData/CustomerGradeByID', JSON.stringify(body), { headers: _Headers })
.subscribe((result: any) =>
{
this.gradeS = result.json() as any[]
},
(error: any)=>console.error(error))
2. my service function
export class CommListService {
endPoint: string;
constructor(private http: Http) {
this.endPoint = "/api/SampleData/MakeCommunicationList";
}
GetfacilityNames(grade: string): Observable<Communication[]> {
var body = grade;
var _Headers = new Headers();
_Headers.append('Content-Type', 'application/json');
var commList = this.http.post(this.endPoint, JSON.stringify(body))
.map((r: Response) => {
return (r.json().length != 0 ? r.json() : [{"facility_name": "No Record Found" }]) as Communication[]
});
return commList;
}
}
3. my model class
export interface ICommunication {
facility_name: string;
}
export class Communication implements ICommunication {
facility_name: string;
}
4. how I tried to merge
this.http.post('api/SampleData/CustomerGradeByID', JSON.stringify(body), { headers: _Headers })
.do(u => this.gradeS = u)
.flatMap(u => this.commu.GetfacilityNames(this.gradeS))
.subscribe(p => this.comms = p);
5. finally in my html
<ul>
<li *ngFor="let cm of comms">{{cm.facility_name}}</li>
</ul>
ТАК, где я ошибся?Я получаю данные из базы данных.Запустив хранимую процедуру.Что со статусом 415?Что это значит в этом контексте?Может ли быть что-то не так в коде C # на стороне сервера?У меня есть предчувствие, что я мог написать что-то не так на стороне сервера, например, на C # и MSSQL.Хотя я не уверен.
это мой код C #
public JsonResult MakeCommunicationList([FromBody]string grade)
{
var gId = _appDbContext.CustomerGrades.First(m => m.grade_name == grade);
try
{
var inpParam = new SqlParameter("gId", SqlDbType.BigInt) { Direction = ParameterDirection.Input };
var salesData = (_appDbContext.Database.ExecuteSqlCommand($"EXEC {"sp_GetCommunicationList"} @gId", inpParam));
return Json(salesData);
}
catch (Exception exp)
{
return Json(exp.GetBaseException());
}
}
, а это мой SP
CREATE procedure [dbo].[sp_GetCommunicationList]
@gId bigint
as
begin
begin try
if exists (
Select * from tempdb..sysobjects Where id = object_id('tempdb.dbo.#temp')
)
DROP TABLE #temp
else
select facility_name
into #temp
from Facilities ff
join
GradeFacilities gf
on
gf.facility_id=ff.Id
where
grade_id=@gId
-- select * into #temp from Orders where customer_id=@customer_id
end try
begin catch
select error_message(),
error_severity(),
error_number(),
error_state()
end catch
end
Пожалуйста, помогите !!Я не могу понять это!