ASP.NET MVC: コントローラ未定義のパスへのアクセス時に404を返す

 Homeコントローラ内のIActionResultの末尾に下記を追加。
[Route("{*path}")]

public IActionResult NotFound(string path)
{
Response.StatusCode = 404;
return View("NotFound");
}

 返すべきものがあるなら上記の場所に達するまでのIActionResultのどれかに引っかかっている。引っかからずに末尾に来たということは、そのパスに該当するものは未定義なので404を返しておけということになるだろう。Viewは自作のものがある場合のコード。

 いつかのASP.NET MVCはController.HandleUnknownActionというメソッドをオーバーライドすればよかったらしいが、この記事を書いている時点での.NET Coreのベータで動かしているものでは該当メソッドが見つからなかった。
comment: 0