ルータを動作していないこのように構成されています // GET API /値/ 5ASP.NETコアルートは
[HttpGet("{id}")]
public string Get(int id)
{
return "value" + id;
}
:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "api",
template: "api/{action}/{id?}");
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "spa-fallback",
template: "{*url}",
defaults: new { controller = "Home", action = "Index"});
});
私が要求にしようとしているコントローラのIアクションは、次のようになります
私がhttp://localhost:54057/api/values/getを要求すると、私は "value0"を取り戻します。
私がhttp://localhost:54057/api/values/getを要求すると、私は "value0"を返します。
http://localhost:54057/api/values/get/5をリクエストすると、404 Not Foundが返されます。
私のルートが正しく設定されていないのですか、または「id」パラメータがURLからコントローラアクションに渡されないのはなぜですか?
[ASP.NETルーティングデバッガ](http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx/)FTW! –
'{id:int}'を試してください。そしてメソッド内で、 'return" value "+ id.ToString();' – nurdyguy
あなたの例では、URLの最後に "/ get"を入れる必要はありません。 URLは "/ api/values/5"にする必要があります。リクエストタイプが "get"の場合、そのアクションに適切にヒットします(下記の回答で提案された変更が適用されます)。 – mgiesa