我遇到了Angular get方法的问题。这是我的get方法声明。
/// <summary>
/// Loads a single user.
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("{id:int}")]
[ResponseCache(NoStore = true)]
public async Task<IActionResult> Get(int id)
{
try
{
Models.Users.AppUserDetail appUserDetail = await AppUserService.LoadAsync(id);
if (appUserDetail == null)
return NotFound();
return Ok(appUserDetail);
}
catch (Exception ex)
{
Logger.LogError(ex, "Get([{0}])", id);
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
这是服务器端功能
/// <summary>
/// Loads the list of all non-deleted application users.
/// </summary>
/// <returns></returns>
[HttpGet]
[ResponseCache(NoStore = true)]
public async Task<IActionResult> Get()
{
try
{
return Ok(await AppUserService.LoadUserListAsync());
}
catch (Exception ex)
{
Logger.LogError(ex, "Get()");
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
还有另一个没有参数的服务器端功能如下......
pace = (number of words in transcript / duration of file)
但是每当http get方法从Angular调用第二个函数而没有参数被调用,即使提到了JSON参数。 我不明白我做错了什么。对Angular来说很新。
答案 0 :(得分:0)
您正在将id
作为查询参数传递,但操作会从路径中获取它。
将您的角度请求更改为
this.http.get(this.appService.baseUrl + 'api/UserList/' + templateCategoryId).subscribe(...)
这是传递查询参数的正确方法,这里的问题是您已使用id
[HttpGet("{id:int}")]
如果您将其更改为[HttpGet("")]
并使用角度代码,则应该