API获取方法在传递Angular 6中用空字符串的整数时不调用



在我的Angular应用程序中,从Angular调用API方法时,我会遇到错误。我必须传递两个参数。第一个一个整数值和第二个字符串值。它是可选的。

请参阅以下代码段(Typescript)

let id:number = 5;
let value: string = "";
this.http.get<string[]>(this.appService.baseUrl + 'api/File/' + id + "/" + value)

在控制器中:

[HttpGet("{id:int}/value")]
[ResponseCache(NoStore = true)]
public async Task<IActionResult> Get(int id, string value) { }

在这里,Get方法没有调用,因为值参数为空。

在您的示例中,您正在构建此URL:

/api/File/5

但是,您的控制器期望以下内容:

/api/File/5/value

如果您希望value在这里是可选的,并且要放置在value参数(string value)中,则可以调整HttpGet属性,如:

[HttpGet("{id:int}/{value?}")]

这使value可选,并且是通过任何传递的占位符。

我只有ASP.NET Web API的经验,但据我所知,将字符串值作为空的,这会导致更改的路由。由于您没有仅采用INT的路线,因此您的请求永远不会达到您的API。您需要做的就是超载您的获取方法,而制作只需INT的方法。

您在URL中输入了变量shareType的类型,然后将空字符串传递给变量shareValue。在变量shareType之后删除:number,并为变量shareValue分配一个值。

相关内容

  • 没有找到相关文章

最新更新