Angular 2/ASP.NET Core从URL中检索ID
问题描述:
我想通过url从特定产品中检索id。这是到目前为止我的代码:Angular 2/ASP.NET Core从URL中检索ID
进口
//Imports from @Angular
import { Component, OnInit } from '@angular/core';
import { RouterModule, Router, Params, RouterLink, ActivatedRoute } from '@angular/router';
import { Http } from '@angular/http';
构造
constructor(
private _hatListService: HatListService, private _router: Router, private _params: ActivatedRoute) {
}
帽子editor.component ngOnInit
ngOnInit() {
this._params.params.subscribe((params: Params) => {
var id = params['id'] * 1;//*1 efter det som man vill parse:s so bilr det som int.parse
this._hatListService.getHat(this.id).subscribe(
foundHats => this.thisHatModel = foundHats);
console.log(this.thisHatModel)
});
}
服务
public _getHatById: string = '/api/Hats/GetHatById';
getHat(id: number): Observable<Hat> {
//debugger
return this._http.get(this._getHatById + '/' + id).map(res => <Hat>res.json()).catch(this.handleError);
}
控制器
// GET: api/Hats/5 [HttpGet("GetHatById/{id}")] public async Task<IActionResult> GetHat([FromRoute] int id) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var hat = await _context.Hat.SingleOrDefaultAsync(m => m.Id == id); if (hat == null) { return NotFound(); } return Ok(hat); }
当我将鼠标悬停在每个产品的URL产生:
但是当我点击该产品的ID不能从浏览器抓:
位指示:
我猜的错误在此行中我getHat发生( ) 方法。在* 1是铸造将ID号:
> this._params.params.subscribe((params: Params) => { var id = params['id'] * 1; });
我试过Angualr.io exapmlpe但不能让它为我工作。 感谢名单所有帮助
答
解决它改变了这种:
变种ID =参数[ 'ID'] * 1;
到:
公共ID:任;
this.id = params ['id'] * 1;
它工作。