Redirect, RedirectToPageの詳細については以下のページも参照してください。
Redirect メソッドと RedirectToPage メソッドの違いを紹介します。
Razor PagesなどのASP.NET Core Webアプリケーションでリダイレクトする際に、Redirect メソッドと RedirectToPage メソッドがあります。2つのメソッドの動作の違いを紹介します。
Redirect(リダイレクト先のURL)
RedirectToPage(ページのファイル名の拡張子が無い名称)
Redirectメソッドにはリダイレクト先のURLを与えますが、RedirectToPageメソッドには、ページのcshtmlのファイル名の拡張子が無い名称を与えます。URLはファイル名から対応するURLを自動で取得して遷移します。
(アプリケーションのルートURL)/ButtonComplete
になります。public IActionResult OnPost()
{
return Redirect("/ButtonComplete");
}
上記のコードをRedirectToPageに変更する場合、下記の記述になります。/Pages/ButtonResult.cshtml
ファイルのページにリダイレクトさせるため、RedirectToPageメソッドに与える引数は /ButtonResult
になります。
public IActionResult OnPost()
{
return RedirectToPage("/ButtonResult");
}
ファイルの位置はPagesフォルダをルートとしているため /Pages/Result/ButtonFinish.cshtml
ファイルのページにリダイレクトさせる場合は下記の記述になります。
public IActionResult OnPost()
{
return RedirectToPage("/Result/ButtonFinish");
}
RedirectToPage を指定すると、cshtmlファイル中の @page
ディレクティブで指定したURLとは独立してファイル名でリダイレクト先を指定できるため、URLの変更に対してコードの変更が発生しないコードの記述ができます。